数据结构C语言版期末考试题附带复习资料.docx
“数据构造期末考试试题一、单项选择题(每题2分,共12分)1 .在一个单链表HL中,假设要向表头插入一个由指针p指向的结点,那么执行()。A. HI,=ps p ->next=HLB. p ->next=HL; HL=p3C. p 一next=Hl; p = HL;D. p >next=HL ->next;HL - >next=p;2 . n个顶点的强连通图中至少含有()oA.n1条有向边B.n条有向边C.n(n1)/2条有向边 D.n(n - 1)条有向边3 .从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )oA.O(l) B.O(n)C.O(lOgzn) D.O(n2)4 .由权值分别为3, 8, 6, 2, 5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()oA. 24 B. 48C. 72 D. 535 .当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为 ()参数,以节省参数值的传输时间和存储参数的空间。A.整形 B.引用型C.指针型D.常值引用型6 .向一个长度为n的顺序表中插入一个新元素的平均时间复杂度为()。A. O(n) B. 0(1)C. O(n2) D. O(10g2n)二、填空题(每空1分,共28分)1 .数据的存储构造被分为、和四种。2 .在广义表的存储构造中,单元素结点与表元素结点有一个域对应不同,各自分别为域 和域。3 . 中缀表达式 3十x*(2.4/56)所对应的后缀表达式为o4 .在一棵高度为h的3叉树中,最多含有结点。5 .假定一棵二叉树的结点数为18,那么它的最小深度为,最大深度为6 .在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定该结点的值,右子 树上所有结点的值一定该结点的值。7 .当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层调整,直到被调整到位置为止。8 .表示图的三种存储构造为、和o9 .对用邻接矩阵表示的具有n个顶点和e条边的图进展任一种遍历时,其时间复杂度为, 对用邻接表表示的图进展任一种遍历时,其时间复杂度为O.从有序表(12, 18, 30, 43, 56, 78, 82, 95)中依次二分查找43和56元素时,其查找长度 分别为和,10 .假定对长度n=144的线性表进展索引顺序查找,并假定每个子表的长度均为,那么进展索引顺序查找的平均查找长度为,时间复杂度为X J 15.栈和链表是两种不同的数据构造。错,栈是逻辑构造的概念,是特殊殊线性表,而链表是存储构造概念,二者不是同类项。X 16.栈和队列是一种非线性数据构造。错,他们都是线性逻辑构造,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。M 17.栈和队列的存储方式既可是顺序方式,也可是方式。M 18.两个栈共享一片连续存空间时,为提高存利用率,减少溢出时机,应把两个栈的栈 底分别设在这片存空间的两端。X 19.队是一种插入与删除操作分别在表的两端进展的线性表,是一种先进后出型构造。 错,后半句不对。X 20. 一个栈的输入序列是12345,那么栈的输出序列不可能是12345。错,有可能。M21.假设二叉树用二叉链表作存贮构造,那么在n个结点的二叉树链表中只有匚L个非 空指针域。X22.二叉树中每个结点的两棵子树的高度差等于1。M23.二叉树中每个结点的两棵子树是有序的。X24.二叉树中每个结点有两棵非空子树或有两棵空子树。X25.二叉树中每个结点的关键字值大于其左非空子树假设存在的话所有结点的关键字 值,且小于其右非空子树假设存在的话所有结点的关键字值。应当是二叉排序树的特点)X26.二叉树中所有结点个数是2kL1,其中k是树的深度。应2X27.二叉树中所有结点,如果不存在非空左子树,那么不存在非空右子树。X28.对于一棵非空二叉树,它的根结点作为第一层,那么它的第i层上最多能有21个结 点。应2刃M29.用二叉链表法link-rlink存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。M30.具有12个结点的完全二叉树有5个度为2的结点。三、单项选择题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个特性。A)可行性、可移植性和可扩大性B)可行性、确定性和有穷性Q确定性、有穷性和稳定性D)易读性、稳定性和平安性C C 7.数据在计算机存储器表示时,物理地址与逻辑地址一样并且是连续的,称之为:CA)存储构造B逻辑构造 C顺序存储构造 D链式存储构造B 8. 一个向量第一个元素的存储地址是100,每个元素的长度为2,那么第5个元素的地 址是B108B108C 100D120A 9.在n个结点的顺序表中,算法的时间复杂度是。1的操作是:(A) 访问第i个结点和求第i个结点的直接前驱2<i<n(B) 在第i个结点后插入一个新结点(C) 删除第i个结点(D) 将n个结点从小到大排序B 10.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素AJ 8B63.5C63D7(E) 11.存储的存储构造所占存储空间:(A) 分两局部,一局部存放结点值,另一局部存放表示结点间关系的指针(B) 只有一局部,存放结点值(C只有一局部,存储表示结点间关系的指针D分两局部,一局部存放结点值,另一局部存放结点所占单元数B 12.链表是一种采用存储构造存储的线性表;A顺序 B链式。星式 网状D 13.线性表假设采用链式存储构造时,要求存中可用存储单元的地址:A必须是连续的B局部地址必须是连续的C一定是不连续的(DJ连续或不连续都可以B 14.线性表L在情况下适用于使用链式构造实现。A需经常修改L中的结点值 B需不断对L进展删除插入CL中含有大量的结点DL中结点构造复杂B 15.栈中元素的进出原那么是A.先进先出B .后进先出A.先进先出B .后进先出C .栈空那么进D.找满那么出C 16.假设一个找的入栈序列是1, 2, 3,,n,其输出序列为pl, p2, p3,,pn, 假设pl=n,那么pi为A. i B . n=i C . n-i+1D.不确定B 17.判定一个栈ST最多元素为mO为空的条件是A. ST->top<>0 B . ST->top=0 C . ST->top<>mO D. ST->top=mOC18.在一个图中,所有顶点的度数之和等于图的边数的倍。A. 1/2B. 1C. 2D. 4B 19.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。A. 1/2B. 1C. 2D. 4B j 20.有8个结点的无向图最多有条边。A. 14B. 28C 21.有8个结点的有向完全图有条边。A. 14B. 28B 22.在表长为n的链表中进展线性查找,A. A S L= n;B. ASL=n+lC. A S L =1 ; D. ASL-1 o g 2A 23.折半查找有序表4, 6, 10, 12, 2(C. 56D. 112C. 56D. 112它的平均查找长度为 /2;n + 1- 1),30, 50, 70, 88, 100。假设查找表中元素58,那么它将依次与表中比拟大小,查找结果是失败。A. 20, 70, 30, 50 B. 30, 88, 70, 50 C. 20, 50 D. 30, 88, 50C 24.对22个记录的有序表作折半查找,当查找失败时,至少需要比拟次关键字。A. 3B. 4C. 5D. 6A 25.链表适用于查找A.顺序 B.二分法 C.顺序,也能二分法D.随机”数据构造与算法”复习题一、选择题。1 .在数据构造中,从逻辑上可以把数据构造分为 C 。A.动态构造和静态构造B.紧凑构造和非紧凑构造C.线性构造和非线性构造D.部构造和外部构造2 .数据构造在计算机存中的表示是指 A .A.数据的存储构造B.数据构造C.数据的逻辑构造 D.数据元素之间的关系.在数据构造中,与所使用的计算机无关的是数据的A 构造。A.逻辑 B.存储 C.逻辑和存储D.物理.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法3 .在决定选取何种存储构造时,一般不考虑 A oA.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种构造是否方便。4 .以下说确的是D。A.数据项是数据的根本单位B.数据元素是数据的最小单位C.数据构造是带构造的数据项的集合D. 一些外表上很不一样的数据可以有一样的逻辑构造5 .算法分析的目的是 C ,算法分析的两个主要方面是 ACD A.找出数据构造的合理性C.分析算法的效率以求改良2A.空间复杂度和时间复杂度C.可读性和文档性.下面程序段的时间复杂度是。(哈s =0;for( I =0; i<n; i+)for(j=0;j<n;j+)s+=sum = s ;B.研究算法中的输入和输出的关系C.分析算法的易读性和文档性.正确性和简明性D.数据复杂性和程序复杂性8 .下面程序段的时间复杂度是 C)(n*m)ofor( i =0; i<n; i+)for(j=0;j<m;j+)Aij = 0;.下面程序段的时间复杂度是 0(1。跖n)1 = 0;while i<=n;i = i*3;9 .在以下的表达中,正确的选项是 BA.线性表的顺序存储构造优于链表存储构造B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出.通常要求同一逻辑构造中的所有数据元素具有一样的特性,这意味着 B °A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要一样,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等10 .链表不具备的特点是 A 。A.可随机访问任一结点B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与其长度成正比11 .不带头结点的单链表head为空的判定条件是A 。A. head = NULLB head->next =NULLC. head->next =headD head!=NULL15 .带头结点的单链表head为空的判定条件是B 。A. head 二二 NULLB hcad->ncxt 二二NULLC. hcad->ncxt =hcadD head!二NULL16 .假设某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,那么采用D存储方式最节省运算时间。A.单链表 B.给出表头指针的单循环链表C,双链表 D.带头结点的双循环链表.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储构造是 B 。A.单链表 B.静态链表 C.线性链表D.顺序存储构造.非空的循环单链表head的尾结点由p所指向满足 C 。A. p->next = NULLB. p = NULLC. p->next =headD. p = head19 .在循环双链表的p所指的结点之前插入s所指结点的操作是D 。A. p->prior = s;s->ncxt = p; p->prior->ncxt = s;s->prior = p->priorp->prior = s;p->prior->ncxt = s;s->ncxt = p;s->prior = p->priorB. s->next = p;s->prior = p->prior;p->prior = s;p->prior->next = ss->next = p;s->prior = p->prior;p->prior->next = s; p->prior = s20 .如果最常用的操作是取第i个结点及其前驱,那么采用 D 存储方式最节省时间。A.单链表 B.双链表 C.单循环链表D. 顺序表.在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B oA. O1 B. ()n C. O (n2) D. O nlog2n.在一个长度为n n>lj的单链表上,设有头和尾两个指针,执行_匕操作与链表的长度有 关。A.删除单链表中的第一个元素B.删除单链表中的最后一个元素C.在单链表第一个元素前插入一个新元素D.在单链表最后一个元素后插入一个新元素21 .与单链表相比,双链表的优点之一是 D 。A.插入、删除操作更简单B.可以进展随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更灵活24 .如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,那 么最好使用B 。A.只有表头指针没有表尾指针的循环单链表B.只有表尾指针没有表头指针的循环单链表C.非循环双链表D.循环双链表25 .在长度为n的顺序表的第i个位置上插入一个元素i元素的移动次数为:A. n - i + 1B. n - iD. i - 1.对于只在表的首、尾两端进展插入操作的线性表,宜采用的存储构造为 CA.顺序表B.用头指针表示的循环单链表C.用尾指针表示的循环单链表D.单链表26 .下述哪一条是顺序存储构造的优点?CA插入运算方便 B可方便地用于各种逻辑构造的存储表示C存储密度大 D删除运算方便.下面关于线性表的表达中,错误的选项是哪一个?BA线性表采用顺序存储,必须占用一片连续的存储单元B线性表采用顺序存储,便于进展插入和删除操作。C线性表采用链式存储,不必占用一片连续的存储单元D线性表采用链式存储,D线性表采用链式存储,便于进展插入和删除操作。27 .线性表是具有n个 B 的有限序列。A.字符 B.数据元素C.数据项D.表元素28 .在n个结点的线性表的数组实现中,算法的时间复杂度是C)1的操作是A 。A.访问第iIV二i<二n个结点和求第i个结点的直接前驱l<i<=nB.在第iIV二iv=n个结点后插入一个新结点C.删除第ilv=iv=n个结点. 一棵B一树中的所有叶子结点均处在上。12 .每次从无序表中顺序取出一个元素,把这插入到有序表中的适当位置,此种排序方法叫 做排序;每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端, 此种排序方法叫做排序。14.快速排序在乎均情况下的时间复杂度为,最坏情况下的时间复杂度为o三、运算题(每题6分,共24分)1 .假定一棵二叉树广义表表示为a(b(c, d), c(, 8),分别写出对它进展先序、中序、后序 和后序遍历的结果。先序:中序;后序:2 . 一个带权图的顶点集V和边集G分别为:V=0, 1, 2, 3, 4, 5;E=(0, 1)8, (0, 2)5, (0, 3)2, (1, 5)6, (2, 3)25, (2, 4)13, (3, 5)9, (4, 5)10), 那么求出该图的最小生成树的权。最小生成树的权;3 .假定一组记录的排序码为(46, 79, 56, 38, 40, 84, 50, 42),那么利用堆排序方法建立 的初始堆为O4 .有7个带权结点,其权值分别为3, 7, 8, 2, 6, 10, 14,试以它们为叶子结点生成一棵 哈夫曼树,求出该树的带权路径长度、高度、双分支结点数。带权路径长度: 高度: 双分支结点数:O四、阅读算法,答复以下问题(每题8分,共16分)1. VOldAC(List&L)(InitList(L);lnsertRcar(L;25);InsertFront(L, 50);IntaL4= 5, 8, 12, 15, 36;for(inti = 0; i<5; i+)if (ai %2 = = 0)InsertFront(L, ai);elselnsertRear(L, ai);)该算法被调用执行后,得到的线性表L为:2. void AG(Queue&Q)InitQueue(Q);inta5 = 6, 12, 5, 15, 8;for(int i = 0;i<5; i+)QInsert(Q, ai);QInsert(Q, QDclete(Q);QInsert(Q, 20);QInscrt(Q, QDclctc(Q)+ 16);D.以上都不对.假设长度为n的线性表采用顺序存储构造,在其第i个位置插入一个新元素的算法的时间复杂度为 C 。A. 0(0) B. 0(1) C. O(n) D. O2).对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为 C 。A. O(n) O(n) B. O(n) 0(1)C. 0(1) O(n)D. 0(1) 0(1).线性表Cal,a2,,an以链式方式存储,访问第i位置元素的时间复杂度为 C 。A. 0(0) B. 0(1) C. O(n) D. O2).单链表中,增加一个头结点的目的是为了 C 。A.使单链表至少有一个结点B.标识表结点中首结点的位置C.方面运算的实现D.说明单链表是线性表的链式存储.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是 B 。A. p->next=s; s->next=p->nextB. s->next=p->next ; p->next=s;C. p->next=s; p->next=s->nextD . p->next=s->next; p->next=s.线性表的顺序存储构造是一种A 。A.随机存取的存储构造B.顺序存取的存储构造C.索引存取的存储构造C.索引存取的存储构造D. Hash存取的存储构造36 .栈的特点是 B ,队列的特点是2A.先进先出B.先进后出38 .栈和队列的共同点是C 。A.都是先进后出C.只允许在端点处插入和删除元素39 . 一个栈的进栈序列是a, b, c, d, e,A. edcba B. decba C. dceabA.先进先出B.先进后出40 .栈和队列的共同点是C 。A.都是先进后出C.只允许在端点处插入和删除元素41 . 一个栈的进栈序列是a, b, c, d, e,A. edcba B. decba C. dceabB.都是先进先出D.没有共同点那么栈的不可能的输出序列是 C OD. abcde40 .设有一个栈,元素依次进栈的顺序为A、B、C、D、Eo以下 C是不可能的出栈序列。A. A,B,C,D,E B. B,C,D,E,AC. E,A,B,C,D D. E,D,C,B,A.以下 B 不是队列的根本运算?A.从队尾插入一个新元素B.从队列中删除第i个元素C.判断一个队列是否为空D.读取队头元素的值41 .假设一个栈的进栈序列是1, 2, 3, n,其输出序列为pl, p2, p3,,pn,假设pl=n, 那么pi为 C 。A. i B. n-i C. n-i + 1D.不确定.判定一个顺序栈st最多元素为MaxSizc为空的条件是 BA. st->top != -1B. st->top -1C. st->top != MaxSizeD. st->top = MaxSize.判定一个顺序栈st最多元素为MaxSize为满的条件是 D 。A. st->top != -1B. st->top = -1C. st->top != MaxSizeD. st->top = MaxSize45 . 一个队列的入队序列是1, 2, 3, 4,那么队列的输出序列是 B 。A. 4, 3, 2, 1B. 1, 2, 3, 4C. 1, 4, 3, 2D. 3, 2, 4, 146 .判定一个循环队列qu最多元素为MaxSize为空的条件是 C 。A. qu->rear - qu->front =MaxSizeB. qu->rear - qu->front -l=MaxSizeC. qu->rear =qu->frontD. qu->rear =qu->front -147.在循环队列中,假设front与rear分别表示对头元素和队尾元素的位置,那么判断循环队列 空的条件是 C 。A. front=rear+l B. rear=front+l C. front=rear D. front=0.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行 D 操作。A. h->next=s ;B. s->next=h ;C. s->next=h ;h =s ; D. s->next=h->next ;h->next=s ;48 .输入序列为ABC,可以变为CBA时,经过的找操作为 B 。A. push, pop, push, pop, push, pop B. push, push, push, pop, pop, popC. push, push, pop, pop, push, pop D. push, pop, push, push, pop, pop50.假设栈采用顺序存储方式存储,现两栈共享空间V1 m, top"、top2分别代表第1和第2个栈的栈顶,栈1的底在Vl,栈2的底在Vm,那么栈满的条件是 B 。A. |top2-top1|=0 B. top1 + 1=top2C. top1+top2=m D. top1=top251.51.设计一个判别表达式中左、右括号是否配对出现的算法,采用 D 数据构造最正确。52.A.线性表的顺序存储构造允许对队列进展的操作有B.队列 C.线性表的链式存储构造D.栈A.对队列中的元素排序A.对队列中的元素排序B.取出最近进队的元素53.53.C.在队头元素之前插入元素D.删除队头元素对于循环队列 DA.无法判断队列是否为空A.无法判断队列是否为空B.无法判断队列是否为满C.队列不可能满C.队列不可能满D.以上说法都不对54 .假设用一个大小为6的数值来实现循环队列,且当前rear和front的值分别为。和3,当从队列中删除一个元素,再参加两个元素后,rear和front的值分别为 B 。B. 2 和 4C. 4 和 2D. 5和1.队列的“先进先出”特性是指D oA.最早插入队列中的元素总是最后被删除B.当同时进展插入、删除操作时,总是插入操作优先C.每当有删除操作时,总是要先做一次插入操作D.每次从队列中删除的总是最早插入的元素.和顺序栈相比,链栈有一个比拟明显的优势是 A °A.通常不会出现栈满的情况B.通常不会出现栈空的情况C.插入操作更容易实现D.删除操作更容易实现.用不带头结点的单链表存储队列,其头指针指向队头结点,尾指针指向队尾结点,那么在进展出队操作时 C OA.仅修改队头指针B.仅修改队尾指针C.队头、队尾指针都可能要修改D.队头、队尾指针都要修改.假设串S='software',其子串的数目是 B 。A. 8 B. 37 C. 36 D. 959.串的长度是指B 。A.串中所含不同字母的个数C.串中所含不同字符的个数59.串的长度是指B 。A.串中所含不同字母的个数C.串中所含不同字符的个数B.串中所含字符的个数D.串中所含非空格字符的个数60 .串是一种特殊的线性表,其特殊性表达在 B oA.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符61 .设有两个串p和q,求q在p中首次出现的位置的运算称为 BA.连接 B.模式匹配 C.求子串62 .数组A中,每个元素的长度为3个字节, SA开场连续存放的存储器,该数组按行存放,A. SA+141 B. SA+144 C. SA + 22263 .数组A中,每个元素的长度为3个字节,SA开场连续存放的存储器,该数组按行存放,A. SA+141 B. SA+180 C. SA + 222A.连接 B.模式匹配 C.求子串64 .数组A中,每个元素的长度为3个字节, SA开场连续存放的存储器,该数组按行存放,A. SA+141 B. SA+144 C. SA + 22265 .数组A中,每个元素的长度为3个字节,SA开场连续存放的存储器,该数组按行存放,A. SA+141 B. SA+180 C. SA + 222D.求串长行下标i从1至I 8,列下标j从1至I 10,从首地址元素A85的起始地址为 C 。D. SA + 225行下标i从1到8,列下标j从1至10,从首地址元素A8的起始地址为 C 。D. SA + 225.假设声明一个浮点数数组如下:froat averaged=new float30;假设该数组的存起始位置为200, avcragc15的存地址是 CA. 214 B. 215C. 260 D. 25664 .设二维数组A1mJ 可按行存储在数组B中,那么二维数组元素在一维数组B中的下标为 A 。A. n*(i-l)+j B. n*(i-l)+j-l C. i*(j-l) D. j*m+i-l.有一个100X90的稀疏矩阵,非0元素有1(),设每个整型数占2个字节,那么用三元组表示该矩阵时,所需的字节数是 B °A. 20 B. 66 C. 18 000 D. 33.数组A04, -1 - -3, 5 7中含有的元素个数是 A 。A. 55 B. 45 C. 36D. 16.对矩阵进展压缩存储是为了D oA.方便运算 B.方便存储C.提高运算速度 D.减少存储空间.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,5为第一个元素,其 存储地址为1,每个元素占1个地址空间,那么瞅5的地址为 B 。A. 13 B. 33 C. 18 D. 40.稀疏矩阵一般的压缩存储方式有两种,即 C 。A.二维数组和三维数组B.三元组和散列C.三元组和十字链表D.散列和十字链表65 .树最适合用来表示 C 。A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据66 .深度为5的二叉树至多有C 个结点。A. 16B. 32 C. 3110.对一个满二叉树,m个叶子,n个结点,深度为h,那么 D °A. n = h+m B h+m = 2n C m = h-1 D n = 2h-l.任何一棵二叉树的叶子结点在前序、中序和后序遍历序列中的相对次序A 。A.不发生改变 B.发生改变C.不能确定 D,以上都不对.在线索化树中,每个结点必须设置一个标志来说明它的左、右链指向的是树构造信息,还是线索化信息,假设()标识树构造信息,1标识线索,对应叶结点的左右链域,应标识为_DA. 00B. 01C. 10D. 1167 .在下述论述中,正确的选项是 D 。只有一个结点的二叉树的度为0;二叉树的度为2;二叉树的左右子树可任意交换;深度为K的顺序二叉树的结点个数小于或等于深度一样的满二叉树。A. B. C. D.设森林F对应的二叉树为B,它有m个结点,B的根为p, p的右子树的结点个数为n,森林F中第一棵树的结点的个数是 八 oA. m-n B. m-n-1 C. n+1 D.不能确定.假设一棵二叉树具有10个度为2的结点,5个度为1的结点,那么度为0的结点的个数是 B。A. 9B. 11C. 15 D.不能确定.具有1()个叶子结点的二叉树中有 B 个度为2的结点。A. 8 B. 9 C. 10 D. 11.在一个无向图中,所有顶点的度数之和等于所有边数的 C 倍。A. 1/2 B 1 C2 D 4.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。A. 1/2 B 1 C2 D 4.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,那么其左子树中结点数目为:CA. 3B. 2C. 4D. 5. 一算术表达式的中缀形式为A + B *C - D/E,后缀形式为ABC *+DE/-,其前缀形式为 D 。A, -A+B*C/DE B. -A+B*CD/E C - +*ABC/DE D. - +A*BC/DE法进展遍历,那么法进展遍历,那么d法进展遍历,那么法进展遍历,那么d68 . 一个图,如下图,假设从顶点a出发按深度搜索 可能得到的一种顶点序列为按广度搜索 可能得到的一种顶点序列为A. a, b, e, c, d, f B. a, c, f, e, b,C. a, c, b, c, f, d,D. a, c, b, c, f, d,E. a, c, d, f, c, bA. a, b, c, e, d, fA. a, b, c, e, d, fB. a, b, c, c, f, dD. a, c, f, d, e, b69 .采用邻接表存储的图的深度优先遍历算法类似于二叉树的_4。A.先序遍历B.中序遍历C.后序遍历D.按层遍历.采用邻接表存储的图的广度优先遍历算法类似于二叉树的 D=。A.先序遍历B.中序遍历C.后序遍历D.按层遍历.具有n个结点的连通图至少有A 条边。A. n-1 B. n C. n(n-l)/2 D. 2n.广义表a,a的表头是C ,表尾是C 。A. aB0CaDa.广义表a的表头是C ,表尾是 B 。A. aBCaI)a.顺序查找法适合于存储构造为B 的线性表。A 散列存储 B 顺序存储或链式存储C 压缩存储D 索引存储.对线性表进展折半查找时,要求线性表必须 B 。A 以顺序方式存储B 以顺序方式存储,且结点按关键字有序排列C以链式方式存储C以链式方式存储D以链式方式存储,且结点按关键字有序排列while(!QueueEmpty(Q)cout<<QDelete(Q)<< ;该算法被调用后得到的输出结果为:五、算法填空,在画有横线的地方填写适宜的容(每题6分,共12分)1 .从一维数组An)中二分查找关键字为K的元素的递归算法,假设查找成功那么返回对应 元素的下标,否那么返回一 1。IntBinsch(ElemTypeA|, Intlow, int high, KeyTypeK)if(lov< = high)int mid = (low+high)/2;if(K= = A mid.key);else if (K< A mid. key);else ;else return1 ;2 .二叉树中的结点类型BinTrccNodc定义为:structBinTreeNodeElemType data ; BinTreeNode*left, *right;其中data为结点值域,left和right分另4为指向左、右子女结点的指针域。下面函数的功能是 返回二叉树BT中值为x的结点所在的层号,请在划有横线的地方填写适宜容。Int NodcLcvcl(BinTrccNodc * BT, ElcmTypc X)if(BT: = NULL)return 0;/ 空树的层号为 0else if(BT - >data= =X)return 1; /根结点的层号为 1/向子树中查找x结点elseintcl = NodeLevel(B,r->left, X);if(cl> = l)return cl+1;int c2=;if;/假设树中不存在X结点那么返回。else return 0;)六、编写算法(8分)按所给函数声明编写一个算法,从表头指针为HL的单链表中查找出具有最大值的结点,该 最大值由函数返回,假设单链表为空那么中止运行。ElemType MaxValuc(LNOdc*HT.);.采用折半查找法查找长度为n的线性表时,每个元素的平均查找长度为D °A (n2)B O(nlog2n) C O(n)D (log,n).有一个有序表为1, 3, 9, 12, 32, 41, 45, 62, 75, 77, 82, 95, 100,当折半查找值为82的结点时,C 次比拟后查找成功。A. 11B 5C 4D 8.二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子 的值。这种说法 B 。A 正确B 错误.下面关于B树和B+树的表达中,不正确的结论是A 。A B树和B+树都能有效的支持顺序查找B B树和B+树都能有效的支持随机查找C B树和B+树都是平衡的多叉树D B树和B+树都可用于文件索引构造94 .以下说法错误的选项是B oA.散列法存储的思想是由关键字值决定数据的存储地址B.散列表的结点中只包含数据元素自身的信息,不包含指针。C.负载因子是散列表的一个重要参数,它反映了散列表的饱满程度。D.散列表的查找效率主要取决于散列表构造时选取的散列函数和处理冲突的方法。97.查找效率最高的二叉排