软件设计师数据结构与算法(一)
软件设计师常考算法知识点

软件设计师常考算法知识点在软件设计师岗位的面试过程中,算法知识是常常考察的一个重要方面。
算法作为计算机科学的基础,是软件设计师必不可少的技能之一。
下面将介绍一些软件设计师常考的算法知识点。
一、排序算法1. 冒泡排序冒泡排序是一种简单的交换排序算法,通过重复遍历待排序序列,比较相邻元素并交换位置来实现排序。
具体步骤如下:(1)比较相邻的两个元素,如果前者大于后者,则交换位置;(2)重复步骤(1),直到遍历完整个序列,此时最大的数会被移到最后一位;(3)重复步骤(1)和(2),直到所有元素都排序完成。
2. 快速排序快速排序是一种常见的基于“分治”思想的排序算法,通过递归地将待排序序列划分为较小和较大的两个子序列,再分别对子序列进行排序。
具体步骤如下:(1)选择一个基准元素,通常选择第一个元素;(2)将比基准元素小的元素移到基准元素的左边,比基准元素大的元素移到右边;(3)对左右子序列分别重复步骤(1)和(2),直到所有元素排序完成。
二、查找算法1. 二分查找二分查找是一种高效的查找算法,要求待查找的序列必须是有序的。
具体步骤如下:(1)选择序列的中间元素;(2)如果中间元素等于目标值,则查找成功;(3)如果中间元素大于目标值,则在左侧子序列中继续进行二分查找;(4)如果中间元素小于目标值,则在右侧子序列中继续进行二分查找;(5)重复步骤(1)至(4),直到找到目标值或遍历完整个序列。
2. 哈希查找哈希查找是通过哈希函数将要查找的元素映射到一个位置,进而直接访问该位置的元素来实现查找。
具体步骤如下:(1)构建一个哈希表,将元素与对应的位置进行关联;(2)根据哈希函数将要查找的元素映射到哈希表中的某个位置;(3)如果该位置存在元素,则查找成功;(4)如果该位置不存在元素,则查找失败。
三、图算法1. 广度优先搜索广度优先搜索是一种用于图的遍历的算法,通过逐层扩展访问顶点,直到遍历完所有与起始顶点连通的顶点。
软考软件设计师知识点

软考软件设计师知识点软考(软件设计师考试)作为国内软件行业的重要认证考试之一,对于软件设计师的专业知识和技能有着严格的要求。
本文将系统地介绍软考软件设计师考试的重要知识点,帮助考生有效备考。
一、计算机基础知识1. 计算机组成与结构在软件设计师考试中,了解计算机的组成和结构是必不可少的。
对于计算机硬件、操作系统、数据库等方面的基本原理和架构,需做到心中有数。
2. 数据结构与算法数据结构与算法是软件设计师考试中的重中之重。
要掌握各种基本数据结构的特点和操作方式,熟悉常用算法的设计思想和实现方法,能够灵活运用于实际问题的解决。
3. 编程语言与开发工具软件设计师需要熟悉多种编程语言和开发工具,如Java、C++、Python等,掌握其语法与特性,并了解各类开发工具的使用方法,能够根据实际需求进行选用和配置。
二、软件需求与规格说明1. 需求分析与设计在软件设计师考试中,需了解软件需求分析的基本方法与技巧,掌握需求获取、需求分析和需求规格说明的过程和要求。
同时,要熟练运用建模工具(如UML)进行需求分析与设计。
2. 软件规格说明书软件设计师需要具备编写软件规格说明书的能力。
规格说明书体现了软件的设计思路和实现要求,对于开发团队的沟通和协作具有重要作用。
考生需要了解规格说明书的结构和要素,学会规范编写。
三、软件设计与实现1. 软件架构与设计模式软件的架构设计是软件设计师的核心能力之一。
需要深入了解常见的软件架构模式(如MVC、MVVM等),并能够根据实际需求选择和设计合适的软件架构。
2. 接口设计与开发软件设计师需具备熟练的接口设计和开发能力。
了解面向对象设计思想和设计原则,掌握接口设计的方法和标准,能够设计和实现稳定、高效的接口。
3. 数据库设计与优化数据库设计与优化是软件设计师需要重点关注的领域。
要了解关系数据库的基本原理和常用操作,熟悉数据库设计的规范和方法,能够进行数据库性能优化和调优。
四、软件测试与质量保证1. 软件测试方法与技术软件测试在软件开发生命周期中占据重要地位。
软件设计师知识点

软件设计师知识点在当今数字化的时代,软件设计成为了至关重要的领域。
作为软件设计师,需要掌握一系列的知识和技能,以确保能够开发出高质量、高效能的软件产品。
接下来,让我们一起深入了解一些关键的软件设计师知识点。
首先,数据结构和算法是软件设计师的基本功。
数据结构就像是存放数据的“容器”,不同的结构有不同的特点和适用场景。
比如数组,它可以快速地随机访问元素,但插入和删除操作可能比较耗时;链表则在插入和删除方面表现出色,但随机访问就相对较慢。
算法则是解决问题的步骤和方法,比如排序算法,像冒泡排序、快速排序等,它们各有优劣,需要根据具体情况选择。
操作系统的知识也不可或缺。
了解进程和线程的概念非常重要。
进程是程序的一次执行过程,而线程是进程中的执行单元。
在多线程编程中,要处理好线程同步和互斥的问题,以避免出现数据不一致或者死锁等情况。
还有内存管理,包括虚拟内存、分页和分段等技术,这有助于提高内存的使用效率和程序的性能。
数据库设计也是软件设计中的重要一环。
关系型数据库如MySQL、Oracle 等,需要掌握表结构的设计、索引的使用、SQL 语句的编写等。
要考虑数据的完整性、一致性和冗余度,设计出合理的数据库架构,以满足系统的存储和查询需求。
面向对象编程是现代软件设计的主流思想。
理解类、对象、封装、继承和多态这些概念是基础。
通过封装,将数据和操作数据的方法封装在一个类中,提高代码的安全性和可维护性。
继承可以实现代码的复用,而多态则增加了程序的灵活性。
软件设计模式是前人总结的一些优秀的设计经验。
例如单例模式,确保一个类只有一个实例存在;工厂模式,用于创建对象,将对象的创建和使用分离;观察者模式,实现对象之间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会得到通知并自动更新。
在软件开发过程中,软件测试也是不能忽视的环节。
软件设计师需要了解不同类型的测试,如单元测试、集成测试、系统测试和验收测试等。
知道如何编写测试用例,以及如何评估测试的覆盖度,以确保软件的质量。
软件设计师-数据结构(一)_真题-无答案

软件设计师-数据结构(一)(总分75,考试时间90分钟)1. 循环链表的主要优点是 (1) 。
A.不再需要头指针了B.已知某个节点的位置后,能很容易找到它的直接前驱节点C.在进行删除操作后,能保证链表不断开D.从表中任一节点出发都能遍历整个链表2. 若循环队列以数组Q[O..m-1]作为其存储结构,变量rear表示循环队列中队尾元素的实际位置,其移动按rear=(rear+1) mod m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是 (2) 。
A.rear-length B.(rear-length+m) mod mC.(1+rear+m-length) mod m D.m-length3. 若广义表L((1,2,3)),则L的长度和深度分别为 (3) 。
A.1和1 B.1和2 C.1和3 D.2和24. 已知有一维数组A(0..m*n-1],若要对应为m行、n列的矩阵,则下面的对应关系 (4) 可将元素A[k](0≤k<m*n)表示成矩阵的第i行、第j列的元素(0≤i<m,0≤j<n)。
A.i=k/n,j=k%m B.i=k/m,j=K%mC.i=k/n,j=k%n D.i=k/m,j=k%n5. 为便于存储和处理一般树结构形式的信息,常采用孩子-兄弟表示法将其转换成二叉树(左子关系表示父子、右子关系表示兄弟),与图8-2所示的树对应的二叉树是 (5) 。
6. 在平衡二叉树中, (6) 。
A.任意节点的左、右子树节点数目相同B.任意节点的左、右子树高度相同C.任意节点的左、右子树高度之差的绝对值不大于1D.不存在度为1的节点7. 已知某二叉树的中序、层序序列分别为DBAFCE,FDEBCA,则该二叉树的后序序列为 (7) 。
A.BCDEAF B.ABDCEF C.DBACEF D.DABECF8. 在二叉树的顺序存储中,每个节点的存储位置与其父节点、左右子树节点的位置都存在一个简单的映射关系,因此可与三叉链表对应。
软件设计需要什么知识点

软件设计需要什么知识点软件设计是指通过对需求分析、系统设计、功能设计等一系列的过程,将软件系统的需求转化为技术实现的过程。
对于软件设计师来说,他们需要具备一定的知识点才能够正确地完成软件设计任务。
本文将介绍软件设计所需的知识点,以便读者了解软件设计的要求。
一、编程语言知识作为软件设计师,掌握至少一种编程语言是必不可少的。
常见的编程语言包括C、C++、Java、Python等。
这些语言各自有自己的特点和应用领域,掌握其语法和特性对于正确实现软件功能至关重要。
此外,了解不同语言的数据类型、控制结构、函数和类等概念也是必备的基础知识。
二、数据结构与算法数据结构和算法是软件设计的核心内容,对于软件设计师来说,深入理解各种数据结构(如数组、链表、堆栈、队列、树等)以及常见算法(如排序、查找、图算法等)是必不可少的。
合理地选择和应用数据结构与算法,可以提高软件的效率和性能。
三、操作系统原理软件设计必须在操作系统的支持下完成,因此了解操作系统原理是必要的。
掌握操作系统的进程管理、内存管理、文件系统等基本概念,了解操作系统的工作原理和实现机制,有助于设计出更加稳定和高效的软件系统。
四、数据库知识大多数软件系统需要与数据库进行交互,因此掌握数据库知识也是软件设计师的必备技能之一。
了解常见的关系型数据库(如MySQL、Oracle)和非关系型数据库(如MongoDB、Redis)的原理和使用方法,能够合理地设计和优化数据库结构,并进行高效的数据库操作。
五、网络通信知识随着互联网的发展,网络通信已成为软件设计的重要一环。
软件设计师需要了解网络协议、网络编程和网络安全等相关知识,能够设计基于网络的分布式系统,并保证通信的安全性和稳定性。
六、软件工程知识软件设计师还需要具备软件工程方面的知识。
了解软件开发的生命周期和各个阶段的工作内容,熟悉需求分析、系统设计、编码测试等过程,并掌握常用的软件开发方法和规范(如敏捷开发、面向对象设计等),能够进行合理的需求管理和项目管理。
学习软件设计师的常考内容

学习软件设计师的常考内容软件设计师是如今信息技术领域中备受追捧的职业之一。
软件设计师需要具备扎实的理论基础和实践经验,以应对不断变化的技术环境和市场需求。
本文将介绍学习软件设计师常考的内容,帮助读者了解并着手应对这一职业发展的挑战。
一、编程语言编程语言是软件设计师必备的工具之一。
学习软件设计师的常考内容之一就是熟悉各种编程语言,比如Java、C++、Python等。
掌握编程语言的语法和常用的开发工具,能够帮助软件设计师更高效地实现软件开发任务。
在学习编程语言时,软件设计师需要重点了解语言的特性和应用场景。
例如,Java是一种广泛应用于企业级应用开发的编程语言;C++则常用于系统级和嵌入式应用的开发;Python则以其简洁易用而广泛应用于科学计算和人工智能等领域。
二、数据结构与算法数据结构与算法是软件设计师能力的核心之一。
学习数据结构与算法的常考内容是为了编写高效的代码,优化软件的性能和用户体验。
软件设计师需要掌握各种数据结构,比如数组、链表、栈、队列、树等,并理解它们的特性和使用场景。
此外,还需要熟悉常见的算法,如查找算法、排序算法、图算法等。
通过灵活运用数据结构与算法,软件设计师可以解决实际问题,并优化软件的性能。
三、系统设计与架构系统设计与架构是软件设计师的核心职责之一。
软件设计师需要掌握系统设计的基本原理和方法,能够将需求转化为可行的软件系统。
学习系统设计与架构的常考内容包括软件系统的分层设计、模块化设计、接口设计等。
软件设计师需要考虑系统的稳定性、性能、可扩展性等因素,并选择适当的设计模式和架构风格进行系统设计。
四、数据库设计与管理数据库是软件系统的重要组成部分,学习数据库设计与管理是软件设计师的必修课之一。
常考的数据库内容包括关系数据库的原理和应用、SQL语言的基本操作、数据库设计范式等。
软件设计师需要理解数据库的基本概念和原理,并能够设计出高效的数据库结构和查询语句。
五、软件开发流程与方法软件开发流程与方法是软件设计师工作的基本载体。
软件设计师必背知识点

软件设计师必背知识点一、计算机组成与体系结构。
1. 数据的表示。
- 进制转换:- 二进制、八进制、十进制、十六进制之间的相互转换。
例如,十进制转二进制可以采用除2取余法,将十进制数不断除以2,取余数,直到商为0,然后将余数从右到左排列得到二进制数。
- 二进制数的运算,包括算术运算(加、减、乘、除)和逻辑运算(与、或、非、异或)。
- 原码、反码、补码:- 原码:最高位为符号位,0表示正数,1表示负数,其余位表示数值的绝对值。
- 反码:正数的反码与原码相同,负数的反码是在原码的基础上,符号位不变,其余位取反。
- 补码:正数的补码与原码相同,负数的补码是其反码加1。
计算机中通常采用补码来表示和运算数据,因为补码可以简化减法运算,将减法转换为加法。
2. 计算机的基本组成。
- 冯·诺依曼结构:由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
- 运算器:进行算术和逻辑运算的部件,如加法器、乘法器等。
- 控制器:指挥计算机各部件协调工作的部件,它从存储器中取出指令,分析指令并产生相应的控制信号,控制计算机各部件执行指令。
- 存储器:用于存储程序和数据。
分为内存储器(主存)和外存储器(辅存)。
内存储器包括随机存取存储器(RAM)和只读存储器(ROM)。
RAM是可读可写的存储器,断电后数据丢失;ROM是只读存储器,断电后数据不丢失,常用于存储BIOS等基本系统程序。
- 输入设备:如键盘、鼠标等,用于向计算机输入数据和指令。
- 输出设备:如显示器、打印机等,用于将计算机处理的结果输出。
3. 指令系统。
- 指令的格式:一般包括操作码和操作数两部分。
操作码表示指令要执行的操作,操作数表示操作的对象。
- 指令的寻址方式:- 立即寻址:操作数直接包含在指令中。
- 直接寻址:操作数的地址直接包含在指令中。
- 间接寻址:指令中给出的是操作数地址的地址。
- 寄存器寻址:操作数存放在寄存器中,指令中给出寄存器编号。
软件设计师常考知识点

软件设计师常考知识点软件设计师是一个充满挑战和机遇的职业,软件设计师需要具备广泛的知识和技能。
在软件设计师的考试中,以下是一些常考的知识点。
一、编程语言基础1. C语言基础C语言是软件设计师最重要的编程语言之一,掌握C语言的基本语法、流程控制、函数以及指针等知识是非常重要的。
2. Java语言基础Java是一种常用的面向对象编程语言,掌握Java的基本语法、类与对象、继承与多态、异常处理等知识是软件设计师必备的能力。
3. Python语言基础Python是一种简单而强大的编程语言,熟悉Python的基本语法、变量、循环、条件语句等知识对软件设计师来说非常有帮助。
二、数据结构与算法1. 数组与链表了解数组和链表的特点与用途,可以对其进行插入、删除、查找等操作。
2. 栈与队列理解栈与队列的概念,以及它们的应用场景和基本操作。
3. 树与图熟悉树与图的相关概念、存储结构和基本遍历算法。
4. 查找与排序了解二分查找、冒泡排序、插入排序、快速排序等常用查找与排序算法。
三、操作系统1. 进程与线程了解进程与线程的概念、特点以及它们之间的区别。
2. 内存管理掌握内存的分配与回收方法,了解虚拟内存的概念与工作原理。
3. 文件系统熟悉文件系统的组织结构以及文件的读写操作。
四、数据库1. SQL语言熟悉SQL语言的基本语法、数据查询与操作,掌握常用的数据库操作命令。
2. 数据库设计与规范化了解数据库设计的基本原则,熟悉规范化的各个层次。
3. 数据库管理与优化掌握数据库的管理与维护方法,了解数据库的性能优化技巧。
五、软件工程与开发1. 需求分析与规划了解软件开发的需求分析和规划流程,掌握相关方法和工具。
2. 设计模式熟悉常用的设计模式,如单例模式、工厂模式等,了解它们的应用场景与原理。
3. 软件测试与调试掌握软件测试的基本方法与流程,熟悉调试工具的使用。
4. 版本控制与项目管理了解版本控制工具如Git的基本使用,熟悉项目管理的基本原则与方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[模拟] 软件设计师数据结构与算法(一)选择题第1题:循环链表的主要优点是______。
A.不再需要头指针了B.已知某个结点的位置后,能很容易找到它的直接前驱结点C.在进行删除操作后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表参考答案:D第2题:表达式a*(b+c)-d的后缀表达式为______。
A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd参考答案:B第3题:若二叉树的先序遍历序列为ABDECF,中序遍历序列为DBEAFC,则其后序遍历序列为______。
A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA参考答案:D第4题:无向图中一个顶点的度是指图中______。
A.通过该顶点的简单路径数B.通过该顶点的回路数C.与该顶点相邻的顶点数D.与该顶点连通的顶点数参考答案:C第5题:利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行______次元素间的比较。
A.4B.5C.6D.7参考答案:B第6题:在常用的描述二叉排序树的存储结构中,关键字值最大的结点______。
A.左指针一定为空B.右指针一定为空C.左、右指针均为空D.左、右指针均不为空参考答案:B第7题:一个具有n(n>0)个顶点的连通无向图至少有______条边。
A.n+1B.nC.n/2D.n-1参考答案:D第8题:由权值为9,2,5,7的4个叶子结点构造一棵哈夫曼树,该树的带权路径长度为______。
A.23B.37C.44D.46参考答案:C第9题:在最好和最坏情况下的时间复杂度均为O(nlog<sub>2</sub>n)且稳定的排序方法是______。
A.基数排序B.快速排序C.堆排序D.归并排序参考答案:D第10题:己知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key % 7计算散列地址,并散列存储在散列表A[0,…,6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为______。
A.1.5B.1.7C.2.0D.2.3参考答案:C为了在状态空间树中(11) ,可以利用LC-检索(Least Cost Search)快速找到一个答案结点。
在进行LC-检索时,为避免算法过分偏向于纵深检查,应该(12) 。
第11题:A.找出任一个答案结点B.找出所有的答案结点C.找出最优的答案结点D.进行遍历参考答案:C第12题:A.B.C.D.参考答案:D第13题:以比较为基础的排序算法在最坏情况下的计算时间下界为______。
A.O(n)B.O(n<sup>2</sup>)C.O(log<sub>2</sub>n)D.O(nlog<sub>2</sub>n)参考答案:D第14题:利用动态规划方法求解每对结点之间的最短路径问题(all pairs shortest path problem)时,设有向图G=<V,E>共有n个结点,结点编号1~n,设C是G的成本邻接矩阵,D<sub>k</sub>(i,j)即为图G中结点i到j并且不经过编号比k还大的结点的最短路径长度(D<sub>n</sub>(i,j)即为图G中结点i到j 的最短路径长度),则求解该问题的递推关系式为______。
A.D<sub>k</sub>(i,j)=D<sub>k-1</sub>(i,j)+C(i,j)B.D<sub>k</sub>(i,j)=min{D<sub>k-1</sub>(i,j),D<sub>k-1</sub>(i,j)+C(i,j)}C.D<sub>k</sub>(i,j)=D<sub>k-1</sub>(i,k)+D<sub>k-1</sub>(k,j)D.D<sub>k</sub>(i,j)=min{D<sub>k-1</sub>(i,j),D<sub>k-1</sub>(i,k)+D<sub>k-1</sub>(k,j)}参考答案:D在活动图中,结点表示项目中各个工作阶段的里程碑,连接各个结点的边表示活动,边上的数字表示活动持续的时间。
在下面的活动图1-1中,从A到J的关键路径是(15) ,关键路径长度是(16) ,从E开始的活动启动的最早时间是(17) 。
第15题:A.ABEGJB.ADFHJC.ACFGJD.ADFIJ参考答案:B第16题:A.22B.49C.19D.35参考答案:B第17题:A.10B.12C.13D.15参考答案:C第18题:已知某二叉树的中序、层序序列分别为DBAFCE、FDEBCA,则该二叉树的后序序列为______。
A.BCDEAFB.ABDCEFC.DBACEFD.DABECF参考答案:B第19题:在二叉树的顺序存储中,每个结点的存储位置与其父结点、左右子树结点的位置都存在一个简单的映射关系,因此可与三叉链表对应。
若某二叉树共有n个结点,采用三叉链表存储时,每个结点的数据域需要d个字节,每个指针域占用4个字节,若采用顺序存储,则最后一个结点下标为k(起始下标为1),那么______时采用顺序存储更节省空间。
A.B.C.D.参考答案:A简单无向图的邻接矩阵是对称的,可以对其进行压缩存储。
若无向图G有n 个结点,其邻接矩阵为A[1..n,1..n],且压缩存储在B[1..k]中,则k的值至少为(20) 。
若按行压缩存储对称矩阵的上三角元素,则当n等于10时,边(V6,V3)的信息存储在B (21) 中。
第20题:A.B.C.D.参考答案:D第21题:A.18B.19C.20D.21参考答案:C第22题:在11个元素的有序表A[1..11]中进行折半查找([(low+high)/2]),查找元素A[11]时,被比较的元素的下标依次是______。
A.6,8,10,11B.6,9,10,11C.6,7,9,11D.6,8,9,11参考答案:B第23题:由元素序列(27,16,75,38,51)构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为2的结点)为______。
A.27B.38C.51D.75参考答案:D第24题:若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。
______排序是稳定的。
设求解某问题的递归算法如下:F(int n){if (n==1){Move(1);}else{F(n-1);Move(n);F(n-1);}}A.归并B.快速C.希尔D.堆参考答案:A求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move 为常数级算法。
则算法F的计算时间T(n)的递推关系式为(25) ;设算法Move的计算时间为k,当n=4时,算法F的计算时间为(26) 。
第25题:A.T(n)=T(n-1)+1B.T(n)=2T(n-1)C.T(n)=2T(n-1)+1D.T(n)=2T(n+1)+1参考答案:C第26题:A.14kB.15kC.16kD.17k参考答案:B利用贪心法求解0-1背包问题时,(27) 能够确保获得最优解。
用动态规划方法求解0-1背包问题时,将“用前i个物品来装容量是X的背包”的0-1背包问题记为KNAP(1,i,X),设f<sub>i</sub>(X)是KNAP(1,i,X)最优解的效益值,第j个物品的重量和放入背包后取得效益值分别为W<sub>j</sub>和p<sub>j</sub>(j=1~n)。
则依次求解f<sub>0</sub>(X)4,f<sub>1</sub>(X),…,f<sub>n</sub>(X)的过程中使用的递推关系式为(28) 。
第27题:A.优先选取重量最小的物品B.优先选取效益最大的物品C.优先选取单位重量效益最大的物品D.没有任何准则参考答案:D第28题:A.f<sub>i</sub>(X)=min{f<sub>i-1</sub>(X),f<sub>i-1</sub>(X)+p<sub>i</sub>}B.f<sub>i</sub>(X)=max{f<sub>i-1</sub>(X),f<sub>i-1</sub>(X-Wi)+p<sub>i</sub>}C.f<sub>i</sub>(X)=min{f<sub>i-1</sub>(X-W<sub>i</sub>),f<sub>i-1</sub>(X-Wi)+p<sub>i</sub>}D.f<sub>i</sub>(X)=max{f<sub>i-1</sub>(X-W<sub>i</sub>),f<sub>i-1</sub>(X)+p<sub>i</sub>}参考答案:B第29题:与逆波兰式ab+-c*d-对应的中缀表达式是______。
A.a-b-c*dB.-(a+b)*c-dC.-a+b*c-dD.(a+b)*(-c-d)参考答案:B第30题:拓扑序列是无环有向图中所有顶点的一个线性序列,图中任意路径中的各个顶点在该图的拓扑序列中保持先后关系,______为图1-2所示有向图的一个拓扑序列。
A.1 2 3 4 5 6 7B.1 5 2 6 3 7 4C.5 1 2 6 3 4 7D.5 1 2 3 7 6 4参考答案:B第31题:为了便于存储和处理一般树结构形式的信息,常采用孩子一兄弟表示法将其转换成二又树(左子关系表示父子,右子关系表示兄弟),与图1-3所示的树对应的二叉树是______。
A.B.C.D.参考答案:A第32题:给定一个有n个元素的有序线性表。