数据结构-复习题-答案
《数据结构》复习题题库
一、单项选择题(本大题共71小题,每小题2分,共142分)1、一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基准而得到的第一次划分结果为()。
()A.{38,46,79,56,40,84}B.{38,79,56,46,40,84}C.{40,38,46,56,79,84}D.{38,46,56,79,40,84}标准答案:C2、广义表((a),a)的表头是()。
()A.aB.bC.(a)D.((a))标准答案:C3、数组A中,每个元素A的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数是()。
()A.80B.100C.240D.270标准答案:C4、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
()A.HL=p;p->next=HL;B.p->next=HL;HL=p;C.p->next=HL;p=HL;D.p->next=HL->next;HL->next=p;标准答案:B5、一个具有n个顶点的无向完全图的边数为()。
()A.(n+1)/2B.n(n-1)/2C.n(n-1)D.n(n+1)标准答案:B6、如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。
下列选项中,()就是不稳定的排序方法。
()A.起泡排序B.归并排序C.直接插入法排序D.简单选择排序标准答案:D7、按照二叉树的定义,具有3个结点的二叉树有()种。
()A.3B.4C.5D.6标准答案:C8、设有1000个元素,用二分法查找时,最大比较次数是()。
()A.1B.7C.10D.25标准答案:C9、树适合用来表示()。
()A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据标准答案:C10、设有两个串p和q,求p在q中首次出现的位置的运算称作()。
数据结构复习习题和答案(DOC)
第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。
① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法 B.数据元素 C.数据操作 D.逻辑结构② A.操作 B.映象 C、存储 D.关系3.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构4·算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B.研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性② A. 空间复杂性和时间复杂性 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性5.计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B.排序方法 C. 解决问题的有限运算序列 D.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。
A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。
A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。
A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。
A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。
数据结构复习题及答案5篇
数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。
()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。
()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。
()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。
()5.如果两个串含有相同的字符,则这两个串相等。
()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。
()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。
()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。
()9.一个广义表的表尾总是一个广义表。
()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。
()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。
()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。
()13.直接选择排序是一种稳定的排序方法。
()14.闭散列法通常比开散列法时间效率更高。
()15.有n个结点的不同的二叉树有n!棵。
()16.直接选择排序是一种不稳定的排序方法。
()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。
()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。
()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。
()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
(完整版)数据结构复习题(附答案)
(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。
1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。
假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。
现要求采⽤循环链表结构设计⼀个算法,模拟此过程。
4、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。
3、假设以I和O分别表⽰⼊栈和出栈操作。
栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。
(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。
若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。
5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(⼊栈满等)给出相应的信息。
设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。
数据结构复习题(附答案)
数据结构复习题(附答案)1. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O (n) D. O (n2)2.设⼀棵⼆叉树的深度为k,则该⼆叉树中最多有( D )个结点。
A. 2k-1B. 2kC.2k-1D. 2k-13.⼆叉树中第i(i≥1)层上的结点数最多有( C )个。
A. 2iB. 2iC. 2i-1D. 2i-1 4.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为( A )。
A. p->next=p->next->nextB. p=p->nextC. p=p->next->nextD. p->next=p5.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,⼀个元素出栈后即进⼊队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量⾄少应该是( C )。
A. 6B. 4C. 3D. 26.设有以下四种排序⽅法,则( B )的空间复杂度最⼤。
A. 冒泡排序B. 快速排C. 堆排序D. 希尔排序7.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为( B )。
A. 3B. 4C. 5D. 18.根据⼆叉树的定义可知⼆叉树共有( B )种不同的形态。
A. 4B. 5C. 6D. 79.对⼀个算法的评价,不包括如下( A )⽅⾯的内容。
A.并⾏性 B.健壮性和可读性 C.正确性 D.时空复杂度10.在⼆叉排序树中插⼊⼀个结点的时间复杂度为( C )。
A.O(1) B.O(n) C.O(log2n) D.O(n2)11. 队列是⼀种( B )的线性表。
A.先进后出B.先进先出 C.只能插⼊D.只能删除12.采⽤开放定址法处理散列表的冲突时,其平均查找长度( C )。
A.低于链接法处理冲突 B. 与链接法处理冲突相同C.⾼于链接法处理冲突 D.⾼于⼆分查找13.设有序顺序表中有n个数据元素,则利⽤⼆分查找法查找数据元素X的最多⽐较次数不超过( A )。
数据结构复习题答案
数据结构复习题答案一、选择题1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表 D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676(10),每个(10)元素占一个空间,问A[3][3](10)存放在()位置,脚注表示用10进制表示。
(10)A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为( )A. O(1)B. O(n)C. On) D. O(n2)(1og29.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.811.一个链队列中,f,r分别为队首、队尾指针,则插入s所指结点的操作为( )。
A)f->next=c;f=s; B)r->next=s;r=s;C)s->next=r;r=s; D)s->next=f;f=s;12.下列说法正确的是()。
数据结构(java)复习题及答案
数据结构(java)复习题及答案⼀、选择题1、数据结构在计算机内存中的表⽰是指____A__A.数据的存储结构 B.数据结构C. 数据的逻辑结构D.数据元素之间的关系2、若⼀个算法的时间复杂度⽤T(n)表⽰,其中n的含义是( A )A.问题规模 B.语句条数C.循环层数 D.函数数量3、下列选项中与数据存储结构⽆关的术语是( D )A.顺序表B.链表C.链队列D.栈4、已知循环队列的存储空间⼤⼩为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下⼀个位置,则向队列中插⼊新元素时,修改指针的操作是( D )A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;5、栈和队列的共同点是__C______A.都是先进后出B.都是先进先出C.只允许在端点处插⼊和删除元素D.没有共同点6、已知⼀堆栈的进栈序列为1234,则下列哪个序列为不可能的出栈序列______D__A.1234B.4321C.2143D.41237、具有线性结构的数据结构是( C )A.树 B.图C.栈和队列 D.⼴义表8、假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为( B )A.3 B.37C.50 D.979、若栈采⽤链式存储结构,则下列说法中正确的是( B )A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空10、若⼀棵具有n(n>0)个结点的⼆叉树的先序序列与后序序列正好相反,则该⼆叉树⼀定是( C )A.结点均⽆左孩⼦的⼆叉树B.结点均⽆右孩⼦的⼆叉树C.⾼度为n的⼆叉树D.存在度为2的结点的⼆叉树11、若⼀棵⼆叉树中度为l的结点个数是3,度为2的结点个数是4,则该⼆叉树叶⼦结点的个数是( B )A.4B.5C.7D.812、在n个结点的线索⼆叉树中,线索的数⽬为_C_______A.n-1 B. nC.n+1D.2n13、⼀棵完全⼆叉树有1001个结点,其中有____B_____叶⼦结点A.500B.501C.503D.50515、⼀个有n个顶点的⽆向图最多有___C____条边。
数据结构复习题及参考答案
《数据结构》课程复习资料一、填空题:1.设需要对5个不同的记录关键字进行排序,则至少需要比较________次,至多需要比较__________次。
2.设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较_________次。
3.设在长度为20的有序表中进行二分查找,则比较一次查找成功的结点数有_________个,比较两次查找成功有结点数有_________个。
4.数据结构从逻辑上划分为三种基本类型:___________、__________和___________。
5.在一个具有n个顶点的无向完全图中,包含有________条边,在一个具有n个顶点的有向完全图中,包含有________条边。
6.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
7.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
8.在快速排序、堆排序、归并排序中,_________排序是稳定的。
9.在有n个叶子结点的哈夫曼树中,总结点数是_______。
10.一棵树T采用二叉链表存储,如果树T中某结点为叶子结点,则在二叉链表BT中所对应的结点一定_______。
11.3.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。
现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
12.在有n个结点的无向图中,其边数最多为_______。
13.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
14.对矩阵采用压缩存储是为了___ ____。
15.带头结点的双循环链表L为空表的条件是_______。
16.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是。
17.对于顺序存储的栈,因为栈的空间是有限的,在进行运算时,可能发生栈的上溢,在进行运算时,可能发生栈的下溢。
数据结构复习题 有答案的打印版
一、选择题1.下面关于线性表的叙述中,错误的是哪一个?( B )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个( C )的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项E.信息项2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( A )存储方式最节省时间。
A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表4. 静态链表中指针表示的是( C ).A.内存地址B.数组下标C.下一元素地址D.左、右孩子地址5. 链表不具有的特点是( B )A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比1. 对于栈操作数据的原则是(B )。
A. 先进先出B. 后进先出C. 后进后出D. 不分顺序2. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( A )A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 41 5 63. 设栈的输入序列是1,2,3,4,则(D )不可能是其出栈序列。
A. 1,2,4,3,B. 2,1,3,4,C. 1,4,3,2,D. 4,3,1,2,E. 3,2,1,4,1. 已知数组A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,求A[6,8]的地址。
13402. 已知二维数组A[1..10,0..9]中每个元素占4个单元,在按行优先方式将其存储到起始地址为1000的连续存储区域时,求A[5,9]的地址。
数据结构复习参考题与参考答案
第一章概论自测题答案一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
11. 一个算法的效率可分为时间效率和空间效率。
二、单项选择题(B)1. 非线性结构是数据元素之间存在一种:A)一对多关系 B)多对多关系C)多对一关系 D)一对一关系( C )2. 数据结构中,与所使用的计算机无关的是数据的结构;A) 存储 B) 物理C) 逻辑 D) 物理和存储(C)3. 算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性(C )5. 计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6. 计算机算法必须具备输入、输出和等5个特性。
数据结构复习题及答案
数据结构复习题及答案数据结构习题一、名词解释1.数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。
2.线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。
3.栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。
4.树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL、哈夫曼编码。
5.图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS、BFS。
6.查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。
7、排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2路归并。
一、填空题1.数据结构是研究数据的_逻辑结构__和___物理结构__,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。
算法的效率包括时间和空间两个方面,分别称为___时间复杂度____和__空间复杂度___。
2.数据的基本单元是__数据元素__,数据的最小单元是__数据项_。
3.算法是对特定问题求解___步骤___的一种描述,是指令的有限序列。
4.一个算法的时间复杂度为(3n3+2n—7),其数量级表示为O(n3)_。
5.一个算法具有5个特性:确定性、可行性、有穷性、输入和输出。
6.算法机能的阐发和怀抱,能够从算法的工夫庞大度和空间庞大度来评判算法的好坏。
7.数据的逻辑布局包孕调集布局、线性布局、树形布局和图型布局四品种型。
8.数据布局在计较机中的表示称为数据的物理布局,它能够采用__按次存储___或__链式存储_两种存储方法。
9.线性表有两种存储布局,划分为按次存储和链式存储。
电大《数据结构(本)》复习题及答案
数据结构(本)复习题一、单项选择题(每小题2分,共30分)1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。
A.3 B.8C.5 D.62.已知一个图的边数为ii,则该图的所有顶点的度数之和为( )。
A.2m B.mC.2m+1 D.m/23.数据结构中,与所使用的计算机无关的是数据的( )结构。
A.物理B.存储C.逻辑与物理D.逻辑4.链表所具备的特点是().A.可以随机访问任一结点B.占用连续的存储空间C.插人删除不需要移动元素结点D.可以通过下标对链表进行直接访问5.线性表只要以()方式存储就能进行折半查找。
A.链接B.顺序C.关键字有序的顺序D.二又树6.散列查找的原理是( )。
A.在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B.按待查记录的关键字有序的顺序方式存储C.按关键字值的比较进行查找D.基于二分查找的方法7.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。
A.1 B.2C.0 D.n-18.排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是()。
A.直接插入排序B.快速排序C.冒泡排序D.选择排序9.在对一组元素(64,48,106,33,25,82,70,55,93)进行直接插入排序时,当进行到要把第7个元素70插入到已经排好序的子表时,为找到插人位置,需进行()次元素n的比较(指由小到大排序).A.6 B.2C.3 D.410.采用顺序查找法对长度为n的线性表进行查找(不采用表尾设监视哨的方法),最坏的情况下要进行()次元素间的比较。
A.n+2 B.nC.n—1 D.n/211如图,若从顶点a出发按广度优先搜索法进行遍历,则可能得到的顶点序列为()。
A.acebdgf B.abecdgfC.acfedgb D.abecfdg12.元素2,4,6,8按顺序依次进栈,则该栈的不可能输出序列是( )(进栈出栈可以交替进行).A.8,6,4,2 B.2,4,6,8C.4,2,8,6 D.8,6,2,413.排序方法中,从未排序序列中挑选元素,并将其依次放人已排序序列(初始为空)的一端的方法,称为( )排序.A.归并B.插人C.选择D.快速I4.一棵哈夫曼树总共有23个结点,该树共有()个叶结点(终端结点)。
数据结构复习题及标准答案
数据结构复习题及标准答案————————————————————————————————作者:————————————————————————————————日期:一、选择题。
(每小题2分,共40分)(1) 计算机识别.存储和加工处理的对象被统称为____A____。
A.数据B.数据元素C.数据结构D.数据类型(2) 数据结构通常是研究数据的____ A _____及它们之间的联系。
A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑(3) 不是数据的逻辑结构是____ A ______。
A.散列结构B.线性结构C.树结构D.图结构(4) 数据结构被形式地定义为<D,R>,其中D是____ B _____的有限集,R是____ C _____的有限集。
A.算法B.数据元素C.数据操作D.逻辑结构(5) 组成数据的基本单位是____ A ______。
A.数据项B.数据类型C.数据元素D.数据变量(6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是____ A ______。
A.线性结构B.树型结构C.图型结构D.集合(7) 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。
A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构(8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。
A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构(9) 对一个算法的评价,不包括如下____ B _____方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度(10) 算法分析的两个方面是__ A ____。
A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性(11) 线性表是具有n个___ C _____的有限序列(n≠0)。
《数据结构01》复习题_答案
一选择题(每小题2分,共20分)1.数据结构中,与所使用的计算机无关的是数据的 ___c___结构;A)存储 B)物理 C)逻辑 D)物理和存储2.算法分析的目的是:cA)找出数据结构的合理性 B)研究算法中的输入和输出的关系C)分析算法的效率以求改进 D)分析算法的易懂性和文档性3.计算机算法必须具备输入.输出和_b______等5个特性.A)可行性、可移植性和可扩充性 B)可行性、确定性和有穷性C)确定性、有穷性和稳定性D)易懂性、稳定性和安全性4.一个向量第一个元素的存储地址是100 ,每个元素的长度为2 ,则第5个元素的地址是 ___b____A)110 B)108 C)100 D)1205设有两个串p和q ,求q在p中首次出现的位置的运算称作:A) 连接 B)模式匹配 C)求子串 D) 求串长6 .向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变 ,平均要移动____b___ 个元素A)8 B)63.5 C)63 D) 77设矩阵 A 是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素a(i≤j),在一维数组B中下i,j标K的值是:(矩阵是A[1][1]开始)BA)i(i-1)/2+j-1 B)i(i_1)/2+j C)i(i+1)/2+j-1 D) i(i+1)/2+j8. 二叉树是非线性数据结构,所以__c_____A) 它不能用顺序存储结构存储 B)它不能用链式存储结构存储C)顺序存储结构和链式存储结构都能存储 D)顺序存储结构和链式存储结构都不能使用9. 有8个结点的无向连通图最少有 __c_____ 条边(边数=节点-1)A) 5 B) 6 C) 7 D) 810. 所有排序方法中, 关键字比较的次数与记录的初始排列次数无关的是___d____A)希尔 B) 冒泡 C) 插入 D) 选择二.填空题(每小题2分,共20分)1. 数据的存储结构可用四种基本的存储方法表示,它们分别是顺序_______、链式_______、索引_______ 和散列_______。
数据结构复习题答案
一、选择题1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在()位置,脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为( )A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.811.一个链队列中,f,r分别为队首、队尾指针,则插入s所指结点的操作为( )。
A)f->next=c;f=s; B) r->next=s;r=s;C)s->next=r;r=s; D) s->next=f;f=s;12.下列说法正确的是()。
数据结构复习题(带答案)
装订第 1 页 共 11 页一、选择题1.设某数据结构的二元组形式表示为A=(D ,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A 是( B )。
(A )线性结构 (B )树型结构 (C )物理结构 (D )图型结构 2.树最适合用来表示( C )。
(A )有序数据元素 (B )无序数据元素(C )元素之间具有分支层次关系的数据 (D )元素之间无联系的数据3. 设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为( B )。
(A) 40,50,20,95 (B) 15,40,60,20 (C) 15,20,40,45 (D) 45,40,15,204. 算法的计算量的大小称为计算的( B )。
(A) 效率 (B) 复杂性 C. 现实性 D. 难度5. 设一维数组中有n 个数组元素,则读取第i 个数组元素的平均时间复杂度为( C )。
(A) O(n) (B) O(nlog 2n) (C) O(1) (D) O(n) 6.下面算法的时间复杂度为( B )。
int f(int n) {if(n==0||n==1)return 1; else return n*f(n-1); }(A) O(1) (B)O(n) (C)O(n2) (D) O(n!) 7. 以下哪一个不是队列的基本运算?( A )(A )在队列第i 个元素之后插入一个元素 (B )从队头删除一个元素 (C )判断一个队列是否为空 (D )读取队头元素的值 8.不含任何结点的空树。
( C )(A)是一棵树; (B)是一棵二叉树;(C)是一棵树也是一棵二叉树 (D)既不是树也不是二叉树9. 若某线性表的常用操作是取第i 个元素及其前趋元素,则采用( A )存储方式最节省时间。
数据结构复习题参考答案
数据结构总复习第一部分课后习题第一章课后习题P16 1、2、5、6、9第三章课后习题P66 2、3第四章课后习题P88 1第五章课后习题P102 1、2第六章课后习题P134-135 1、3、16、18完成P137 实验二构造哈夫曼编码第七章课后习题P177 1、2、4、8、10第二部分综合习题一、单项选择题1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是(C )A. 栈B. 队列C. 树D. 图2.下面程序段的时间复杂度为(B )for (i=0; i<m; i++)for (j=0; j<n; j++)A[i][j]=i*j;A. O (m2)B. O (n2)C. O (m*n)D. O (m+n)3.在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是( A )A. p->next==headB. p->next->next==headC. p->next==NULLD. p==head4.若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列是( D )A. SXSSXXXXB. SXXSXSSXC. SXSXXSSXD. SSSXXSXX5.两个字符串相等的条件是(D )A. 串的长度相等B. 含有相同的字符集C. 都是非空串D. 串的长度相等且对应的字符相同6.已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为( D )A. 0B. 1C. 48D. 497.算法分析的目的是:(C )(A)找出数据结构的合理性(B)研究算法中输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性8.用链表表示线性表的优点是:( C )(A)便于随机存取(B)花费的存储空间比顺序表少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同9.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxsize为数组的最大长度,队满的条件是:( D )(A)front=rear (B)rear=maxsize(C)rear=front (D)(rear+1)%maxsize=front10.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为:( A )(A)CDBGFEA (B)CDBFGEA(C)CDBAGFE (D)BCDAGFE11.执行下列程序段,执行S的次数(S这段程序的时间复杂度)是:(D )for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)S;(A)n2 (B)n2/2 (C)n(n+1) (D)n(n+1)/212.以下数据结构中哪一个是非线性结构的是:( D )(A)队列(B)栈(C)线性表(D)图13.设有6个结点的无向图,该图至少有多少条边才能确保是一个连通图:(A )(A)5 (B)6 (C)7 (D)814.树形结构数据元素之间的关系是:( C )(A)一对一关系(B)多对多关系(C)一对多关系(D)多对一关系15.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是:( C )(A)edcba (B)decba (C)dceab (D)abcde16.静态查找和动态查找的根本区别在于:(B )(A)它们的逻辑结构不一样(B)施加在其上的操作不同(C)所包含的数据元素的类型不一样(D)存储的实现不一样17.关键路径是AOE网中:(A )(A)从源点到终点的最长路径(B)从源点到终点的最短路径(C)最长的回路(D)最短的回路18.采用折半查找方法进行查找,数据文件为,且限于;(A )(A)有序表顺序存储结构(B)有序表链式存储结构(C)随机表顺序存储结构(D)随机表链式存储结构19.一个高度为h的完全二叉树共有n个结点,其中m个叶子结点,则下列式子成立的是( D )(A)n=h+m (B)h+m=2n (C)m=h-1 (D)n=2m-120.下列说法中不正确的是:(C )(A)数组时一种线性结构(B)数组是一种定长的线性结构(C)除了插入和删除操作外,数组的基本操作还有存取、修改、检索和排序等(D)数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作21.设无向图G有n个顶点e条边,则该无向图中所有顶点的度之和为:( D )(A)n (B)e (C)2n (D)2e22.对下面的无向图进行广度优先搜索后所得到的顶点访问序列,正确的是:(A )(A)ABDEFC (B)ABFEDC (C)ADCBEF (D)ADCBFE23.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用( D )存储方式最节省时间。
数据结构-复习题-答案
数据结构-复习题-答案一、选择题1. 数据结构是指()。
A. 一组数据的存储结构B. 一组数据的算法C. 一组数据的完整性D. 一组数据的遍历方式答案:A2. 数组是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A3. 链表是一种()数据结构。
A. 线性B. 非线性D. 图形答案:A4. 栈是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A5. 队列是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A6. 树是一种()数据结构。
A. 线性C. 树形D. 图形答案:B7. 图是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:D8. 哈希表是一种()数据结构。
A. 线性B. 非线性C. 树形D. 图形答案:A9. 排序算法中,选择排序的时间复杂度是()。
B. O(logn)C. O(n)D. O(n^2)答案:D10. 排序算法中,快速排序的时间复杂度是()。
A. O(1)B. O(logn)C. O(n)D. O(n^2)答案:D二、填空题1. 在数组中,下标表示()。
答案:元素在数组中的位置2. 链表的结构中,节点包含()。
答案:数据元素和指向下一个节点的指针3. 树的根节点位于()。
答案:最顶层4. 图的节点间的关系可以用()表示。
答案:边5. 哈希表通过()进行快速的数据查找。
答案:哈希函数三、简答题1. 数据结构是什么,它的作用是什么?答:数据结构是一种组织和存储数据的方式,它的作用是使数据能够高效地进行操作和处理。
通过选择合适的数据结构,我们可以提高算法的效率,减少资源的浪费。
2. 数组和链表的区别是什么?答:数组是一种连续存储的数据结构,它的元素在内存中占用连续的空间。
链表则是一种离散存储的数据结构,它的元素在内存中可以分布在任意的位置。
数组的插入和删除操作比较耗时,而链表则可以快速进行插入和删除操作。
3. 栈和队列的特点及各自的应用场景是什么?答:栈是一种后进先出(LIFO)的数据结构,常用于实现递归调用、表达式求值等场景。
数据结构复习资料(题目和参考答案)
数据结构复习题及参考答案(抽考其中50%)一、单选题(每小题1分)1.下列程序段的时间复杂度为(A )。
for(i=0; i<m ; i++)for(j=0; j<t ; j++) c[i][j]=0;for(i=0; i<m ; i++)for(j=0; j<t ; j++)for(k=0; k<n ; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];(A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n)2.下列程序段的时间复杂度为(A )。
i=0,s=0;while (s<n) {s=s+i ;i++;}(A) O(n 1/2) (B) O(n 1/3) (C) O(n) (D) O(n 2)3.设顺序表中有n 个数据元素,则删除表中第i 个元素需要移动(A )个元素。
(A) n-i (B) n+l-i (C) n-1-i (D) i4.设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列(D )存储方式最节省运算时间。
(A) 单向链表 (B) 单向循环链表(C) 双向链表 (D) 双向循环链表5.设F 是由1T 、2T 和3T 三棵树组成的森林,与F 对应的二叉树为B ,1T 、2T 和3T 的结点数分别为1n 、2n 和3n ,则二叉树B 的根结点的左子树的结点数为(A )。
(A) 11n - (B) 21n - (C) 23n n + (D) 13n n +6.设指针q 指向单链表中结点A ,指针p 指向单链表中结点A 的后继结点B ,指针s 指向被插入的结点X ,则在结点A 和结点B 插入结点X 的操作序列为(B )。
(A) s->next=p->next ;p->next=-s ; (B) q->next=s ; s->next=p ;(C) p->next=s->next ;s->next=p ; (D) p->next=s ;s->next=q ;7.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为(C )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题DDABA BCBDB ADCAD CDCCDADBCB DADAC DCDCB二、填空题1.联系,图(或图结构)2.L->prior==L->next==L3.head->next==NULL4. 尾,首5. top==06. O(1),O(2)7. 128,44,1088. 3,39.模式匹配10.有序,n-111. 有序序列,后缀表达式(或逆波兰式)12.2n,n-1,n+113. 2i+1,2i+2,(i-1)/214.开放定址法,链接法15.快速,归并16.边结点,邻接点域,权域,链域,17.索引值域、开始位置域;1.答案:(1)((1,5,1),(3,2,-1),(4,5,-2),(5,1,5),(6,3,7))(2)如图1所示2. 设有一个输入数据的序列是 { 46, 25, 78, 62, 12, 80 }, 试画出从空树起,逐个输入各个数据而生成的二叉搜索树。
答案:如图2所示3. 对于图3所示的有向图若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,试写出:(1) 从顶点①出发进行深度优先搜索所得到的深度优先生成树; (2) 从顶点②出发进行广度优先搜索所得到的广度优先生成树; 答案:DFS :①②③④⑤BFS :②③④⑤①4. 已知一个图的顶点集V 和边集E 分别为:V={1,2,3,4,5,6,7};E={<2,1>,<3,2>,<3,6>,<4,3>,<4,5>,<4,6>,<5,1>,<5,7>,<6,1>,<6,2>,<6,5>};若存储它采用邻接表,并且每个顶点邻接表中的边结点都是按照终点序号从小到大的次序链接的,按主教材中介绍的拓朴排序算法进行排序,试给出得到的拓朴排序的序列。
答案:拓朴排序为: 4 3 6 5 7 2 15.已知一组记录的排序码为(46,79,56,38,40,80, 95,24),图3图2写出对其进行快速排序的每一次划分结果。
答案:6.一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H (key )= key % 13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。
答案: SUCC 7.已知一棵二叉树的前序遍历的结果序列是ABECKFGHIJ ,中序遍历的结果是EBCDAFHIGJ ,试写出这棵二叉树的后序遍历结果。
答案:此二叉树的后序遍历结果是:EDCBIHJGFA 8.已知一个图的顶点集V 各边集G 如下:V = {0,1,2,3,4,5,6,7,8,9};E = {(0,1),(0,4),(1,2),(1,7),(2,8),(3,4),(3 ,8),(5,6),(5,8),(5,9),(6,7),(7,8),(8,9)} 当它用邻接矩阵表示和邻接表表示时,分别写出从顶点V 0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历等到的顶点序列。
假定每个顶点邻接表中的结点是按顶点序号从大到小的次序链接的。
0 1 2 3 4 5 6 7 8 9 10 11答案:9.设一组初始记录关键字序列为(19,21,16,5,18,23),要求给出以19为基准的一趟快速排序结果以及第2趟直接选择排序后的结果。
答案: (18,5,16,19,21,23),(5,16,21,19,18,23) 10.设一组初始记录关键字集合为(25,10,8,27,32,68),散列表的长度为8,散列函数H(k)=k mod 7,要求分别用线性探测和链地址法作为解决冲突的方法设计哈希表。
答案: 线性探测: 链地址法:11.设无向图G (所右图所示),要求给出该图的深度优先和广度优先遍历的序列并给出该图的最小生成树。
答案:深度:125364,广度:123456,最小生成树T 的边集为E={(1,4),(1,3),(3,5),(5,6),(5,6)}6827322510876543210ΛΛ276832251086543210>->->->->->-h h h h h h h 图深度优先序列广度优先序列邻接矩阵表示时 邻接表表示时图 深度优先序列广度优先序列邻接矩阵表示时 0,1,2,8,3,4,5,6,7,9 0,1,4,2,7,3,8,6,5,9 邻接表表示时0,4,3,8,9,5,6,7,1,20,4,1,3,7,2,8,6,9,512.设指针变量p 指向双向链表中结点A ,指针变量q 指向被插入结点B ,要求给出在结点A 的后面插入结点B 的操作序列(设双向链表中结点的两个指针域分别为llink 和rlink )。
答案: q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;13.假设用于通讯的电文仅由8个字母A 、B 、C 、D 、E 、F 、G 、H 组成,字母在电文中出现的频率分别为:0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。
请为这8个字母设计哈夫曼编码。
答案:14.现有一个稀疏矩阵,请给出它的三元组表。
⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-0200012000010130 答案:15.已知图G 的邻接矩阵如下所示:65111932623032381001710721AHCFDBEG1111111A 000B 101C 10000D 1001E 11F 10001G 01H 001i 211v j 433132332113-212(1)求从顶点1出发的广度优先搜索序列;(2)根据prim 算法,求图G 从顶点1出发的最小生成树,要求表示出其每一步生成过程。
(用图或者表的方式均可)。
⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞62466325546551356516 答案:(1)广度优先遍历序列:1; 2, 3, 4; 5; 6 (2)最小生成树(prim 算法)16.已知图G 如下,根据克鲁斯卡尔算法求图G 的一棵最小生成树。
(要求给出构造过程)答案:kruskal 算法的最小生成树16311314613144261314422561314422553四、编程题1.HL 是单链表的头指针,试写出删除头结点的算法。
ElemType DeleFront(LNode * & HL) 答案:ElemType DeleFront(LNode * & HL) {if (HL==NULL){ cerr<<"空表"<<endl; exit(1); }LNode* p=HL; HL=HL->next;ElemType temp=p->data; delete p; return temp; }2. 统计出单链表HL 中结点的值等于给定值X 的结点数。
int CountX(LNode* HL,ElemType x)BF 2BF 2KD3BF2K D3H 3BF2KD3H3AC 4BF2K D3H 3AC4E 4BF2K D3H 3AC4E 45BF2KD3H 3AC4E455答案:int CountX(LNode* HL,ElemType x){ int i=0; LNode* p=HL;//i为计数器while(p!=NULL){ if (P->data==x) i++;p=p->next;}//while, 出循环时i中的值即为x结点个数return i;}//CountX3. 编写算法,将一个结点类型为Lnode的单链表按逆序链接,即若原单链表中存储元素的次序为a1,......an-1,an,则逆序链接后变为, an,an-1, (1)Void contrary (Lnode * & HL)答案:{Lnode *P=HL;HL=NULL;While (p!=null){Lnode*q=p;P=p→next;q→next=HL;HL=q;}}4. int arrange(int a[],int 1,int h,int x){//1和h分别为数据区的下界和上界int i,j,t;i=1;j=h;while(i<j){while(i<j && a[j]>=x)j--;while(i<j && a[j]>=x)i++;if(i<j){ t=a[j];a[j]=a[i];a[i]=t;}}if(a[i]<x) return i;else return i-1;}(1)写出该函数的功能;(2)写一个调用上述函数实现下列功能的算法:对一整型数组b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。
答案:(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i,使所有<x的元素均落在a[1..i]上,使所有≥x的元素均落在a[i+1..h]上。
(2)int f(int b[],int n) 或 int f(int b[],int n) { {int p,q; int p,q;p=arrange(b,0,n-1,0); p=arrange(b,0,n-1,1);q= arrange(b,p+1,n-1,1); q= arrange(b,0,p,0);return q-p; return p-q;} }5. 设计在链式存储结构上建立一棵二叉树的算法。
答案:typedef char datatype;typedef struct node {datatype data; struct node *lchild,*rchild;} bitree;void createbitree(bitree *&bt){char ch; scanf("%c",&ch);if(ch=='#') {bt=0; return;}bt=(bitree*)malloc(sizeof(bitree)); bt->data=ch; createbitree(bt->lchild); createbitree(bt->rchild);}6. 设计判断一棵二叉树是否是二叉排序树的算法。