数据结构期末复习资料

单选 2x10

判断 1x10

应用题    50分 

算法题   10 + 10分 

 

选择题

1. 算法的计算量的大小称为计算的(    )。

A.效率          B. 复杂性       C. 现实性           D. 难度

2. 算法的时间复杂度取决于( )

A.问题的规模      B. 待处理数据的初态      C. A和B

3.计算机算法指的是(1),它必须具备(2) 这三个特性。

(1) A.计算方法    B. 排序方法    C. 解决问题的步骤序列      D. 调度方法

(2) A.可行性、可移植性、可扩充性    B. 可行性、确定性、有穷性

C. 确定性、有穷性、稳定性          D. 易读性、稳定性、安全性       

4.一个算法应该是(     )。

     A.程序     B.问题求解步骤的描述     C.要满足五个基本特性        D.A和C.

5. 下面关于算法说法错误的是(    )

A.算法最终必须由计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的

C. 算法的可行性是指指令不能有二义性          D. 以上几个都是错误的

6. 下面说法错误的是(    )

    (1)算法原地工作的含义是指不需要任何额外的辅助空间

   (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 

   (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

   (4)同一个算法,实现语言的级别越高,执行效率就越低

 A.(1)      B.(1),(2)    C.(1),(4)     D.(3)

7.从逻辑上可以把数据结构分为(    )两大类。

A.动态结构、静态结构       B.顺序结构、链式结构  

C.线性结构、非线性结构     D.初等结构、构造型结构

8.以下与数据的存储结构无关的术语是(    )。

A.循环队列       B. 链表        C. 哈希表          D.  栈

10.以下属于逻辑结构的是(    )。

A.顺序表       B. 哈希表        C.有序表          D.  单链表

11.在下面的程序段中,对x的赋值语句的时间复杂度为(    )

for(i=1;i<=n;i++)

    for(j=1;j<=n;j++)   

      x=x+1;

A. O(2n)       B.O(n)       C.O(n2)         D.O(log2n)   

12.程序段  for(i=n-1;i>=1 ;i--)

              for(j=1;j<=i;j++)

               if (a[j]>a[j+1])

                    A[j]与A[j+1]对换;

其中 n为正整数,则最后一行的语句的时间复杂度在最坏情况下是(   )

A. O(n)    B. O(nlogn)     C. O(n3)     D. O(n2)   

13.连续存储设计时,存储单元的地址(    )。

A.一定连续  B.一定不连续  C.不一定连续  D.部分连续,部分不连续

14.以下数据结构中,(    )是非线性数据结构

A.树        B.字符串       C.队           D.栈

15. 下列数据中,(    )是非线性数据结构。

A.栈       B.  队列         C.  完全二叉树    D. 堆

16.数据在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为(    )。

A.存储结构   B.逻辑结构  C.顺序存储结构  D.链式存储结构

17.非线性结构的数据元素之间存在(    )。

A.一对一关系     B.一对多关系 C.多对多关系 D.B或C

18.除了考虑存储数据结构本身所占用的空间外,实现算法所用的辅助空间的多少称
为算法的(    )。

A.时间效率    B.空间效率   C.硬件效率   D.软件效率

19.链式存储的存储结构所占存储空间(    )。

A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

B.只有一部分,存放结点值

C.只有一部分,存储表示结点间关系的指针

D.分两部分,一部分存放结点值,另一部分存放结点所占单元数

20.设语句s=s+i的时间是单位时间,则语句:

s=0;

for  (i=1;i<=n; i++)

   s=s+i;

的时间复杂度为:(    )。

A.O (1) B.O (n) C.O (n2 ) D.O (n3 )

 

 

1.下述哪一条是顺序存储结构的优点?(    )

A.存储密度大  B.插入运算方便  C.删除运算方便  D.可方便地用于各种逻辑结构的存储表示

2.下面关于线性表的叙述中,错误的是哪一个?(    )

A.线性表采用顺序存储,必须占用一片连续的存储单元。B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个(    )的有限序列(n>0)。 

A.表元素      B.字符      C.数据元素     D.数据项         E.信息项

9. 链表不具有的特点是(    )

A.插入、删除不需要移动元素  B.可随机访问任一元素 

 C.不必事先估计存储空间  D.所需空间与线性长度成正比

10. 在线性表中(    )只有一个直接前趋和一个直接后继。

A.首元素   B.中间元素 C.尾元素 D.所有元素

13. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(  )(1<=i<=n+1)。

A. O(0)      B. O(1)         C. O(n)          D. O(n2)

14. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为(    )。

A.O(n)  O(n)      B. O(n)  O(1)       C. O(1)  O(n)        D. O(1) O(1)

15.线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为(    )

A.O(i)      B.O(1)      C.O(n)       D.O(i-1)

21.两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素前趋的条件是(    )。

A.P->next= =Q->next    B.P->next= = Q    C.Q->next= = P    D.P= = Q

24.在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:(    )。

A.p->next=s;s->next=p->next;  B. s->next=p->next;p->next=s;

C.p->next=s;p->next=s->next;  D. p->next=s->next;p->next=s;

25.对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是(    )

A.head==NULL  B.head→next==NULL    C.head→next==head   D.head!=NULL

26.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是         

A.当前结点所在地址域   B.指针域   C.空指针域   D.空闲域

27.在具有n个结点的单链表中,实现       的操作,其算法的时间复杂度都是O( n )。

A.遍历链表和求链表的第i个结点 B.在地址为P的结点之后插入一个结点

C.删除开始结点 D.删除地址为P的结点的后继结点

29.已知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址dal,则第i个结点的地址为(    )。

B

30.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是(    )。

A.访问第i个结点(1<=i<=n)和求第i个结点的直接前趋(2<=i<=n)

B.在第i个结点之后插入一个新结点(1<=i<=n)

C.删除第i个结点(1<=i<=n)  

D.将n个结点从小到大排序

 

 

1. 对于栈操作数据的原则是(   )。

A. 先进先出    B. 后进先出    C. 后进后出     D. 不分顺序

3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(    )。

A. 不确定          B. n-i+1          C.  i           D. n-i

4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(     )。

 A. i-j-1          B. i-j            C. j-i+1      D. 不确定的

5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是(    )。

    A. i            B. n-i        C. n-i+1       D. 不确定

6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?(    )

A. 5 4 3 6 1 2     B. 4 5 3 1 2 6     C. 3 4 6 5 2 1    D. 2 3 4 1 5 6

7. 设栈的输入序列是1,2,3,4,则(  )不可能是其出栈序列。

A. 1,2,4,3,        B. 2,1,3,4,        C. 1,4,3,2, D. 4,3,1,2,  

8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是(    )。

   A. 2 3 4 1 5     B. 5 4 1 3 2     C. 2 3 1 4 5      D. 1 5 4 3 2

9. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(    )。

A. 5 1 2 3 4        B. 4 5 1 3 2      C. 4 3 1 2 5        D. 3 2 1 5 4

10. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是(    )。

    A. a,c,b,d         B. b, c,d,a    C. c, d,b, a         D. d, c,a,b

11. 设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为(    )。

A.fedcba       B. bcafed        C. dcefba        D. cabdef

12. 设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是(     )。

A.XYZ           B. YZX            C. ZXY            D. ZYX

13. 输入序列为ABC,可以变为CBA时,经过的栈操作为(    )

A. push,pop,push,pop,push,pop        B. push,push,push,pop,pop,pop

    C. push,push,pop,pop,push,pop        D. push,pop,push,push,pop,pop

14. 若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是(    )。

A.top=top+1;  V [top]=x            B.  V [top]=x; top=top+1    

C. top=top-1;  V [top]=x            D.  V [top]=x; top:=top-1

15. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是(    )。

A. |top[2]-top[1]|=0   B. top[1]+1=top[2]   

 C. top[1]+top[2]=m     D. top[1]=top[2]

16. 栈在(    )中应用。

A. 递归调用        B. 子程序调用       C. 表达式求值    D. A,B,C

17. 一个递归算法必须包括(    )。

A. 递归部分      B. 终止条件和递归部分     C. 迭代部分      D.终止条件和迭代部分

18. 执行完下列语句段后,i值为:(    )

     int   f(int x)

     { return  ((x>0) ? x* f(x-1):2);}

      int i  ;

      i =f(f(1));

A.2            B. 4          C. 8           D. 无限递归

21. 设计一个判别表达式中左,右括号是否配对出现的算法,采用(    )数据结构最佳。

A.线性表的顺序存储结构       B. 队列    C. 线性表的链式存储结构       D. 栈

23. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(     )。

A.仅修改队头指针          B. 仅修改队尾指针 

C. 队头、队尾指针都要修改  D. 队头,队尾指针都可能要修改

24. 递归过程或函数调用时,处理参数及返回地址,要用一种称为(    )的数据结构。

A.队列             B.多维数组           C.栈             D. 线性表

25. 假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(    )。

A.(rear-front+m)%m     B.rear-front+1     

 C.(front-rear+m)%m      D.(rear-front)%m

26. 循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是(    )。

A. (rear-front+m)%m      B. rear-front+1   

 C.  rear-front-1    D.  rear-front

27. 循环队列存储在数组A[0..m]中,则入队时的操作为(    )。

A. rear=rear+1               B. rear=(rear+1) % (m-1)

    C. rear=(rear+1) % m       D. rear=(rear+1)%(m+1)

28. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?(  )

A. 1和 5         B. 2和4          C. 4和2         D. 5和1  

29. 用单链表表示的链式队列的队头在链表的(    )位置。

A.链头             B.链尾               C.链中    D.任意

31. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是  (    )。

     A. (rear+1) % n=front                   B. rear=front                                                          

C.rear+1=front                           D. (rear-l) % n=front

32. 栈和队列的共同点是(    )。

A. 都是先进先出                        B. 都是先进后出   

C. 只允许在端点处插入和删除元素        D. 没有共同点

34. 栈和队都是(    )

A.顺序存储的线性结构       B. 链式存储的非线性结构

C. 限制存取点的线性结构     D. 限制存取点的非线性结构

35. 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是(    )。

A. 6          B. 4          C. 3          D. 2

36.设有编号为1,2,3,4的四辆列车,顺序进入一个栈式结构的站台,下列不可能的出站顺序为(    )

A.1234 B.1243 C.1324 D.1423

37.如果以链表作为栈的存储结构,则出栈操作时(    )

A.必须判别栈是否满 B.必须判别栈是否为空

C.必须判别栈元素类型 D.队栈可不做任何判别

38.元素A,B,C,D依次进栈以后,栈顶元素是(    )

A.A B.B C.C D.D

39.顺序栈存储空间的实现使用(    )存储栈元素。

A.链表 B.数组 C.循环链表 D.变量

40.一个顺序栈一旦说明,其占用空间的大小(    )

A.已固定 B.可以变动 C.不能固定 D.动态变化

 

 

 

1.已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(    )

A.-A+B*C/DE       B. -A+B*CD/E      C.-+*ABC/DE           D. -+A*BC/DE

2.算术表达式a+b*(c+d/e)转为后缀表达式后为(    )

A.ab+cde/*    B.abcde/+*+      C.abcde/*++    D.abcde*/++

3. 设有一表示算术表达式的二叉树(见下图),它所表示的算术表达式是(    )

                        

A. A*B+C/(D*E)+(F-G)  B. (A*B+C)/(D*E)+(F-G)  

C. (A*B+C)/(D*E+(F-G))   D. A*B+C/D*E+F-G

4. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1  则T中的叶子数为(    )

A.5            B.6          C.7           D.8

5. 在下述结论中,正确的是(    )

①只有一个结点的二叉树的度为0;  ②二叉树的度为2;  ③二叉树的左右子树可任意交换;

④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。 

A.①②③        B.②③④      C.②④       D.①④

6. 设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是(    )   

 A.m-n   B.m-n-1    C.n+1   D.条件不足,无法确定 

7.  树是结点的有限集合,它( (1))根结点,记为T。其余结点分成为m(m>0)个((2))的集合T1,T2, …,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数称为该结点的( (3) )。供选择的答案:

(1)(4) A. 有0个或1个  B. 有0个或多个  C. 有且只有一个    D. 有1个或1个以上

(2) A. 互不相交   B.允许相交     C.允许叶结点相交  D.允许树枝结点相交

(3) A. 权         B.维数         C.度            D.序

8.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(  )

A.9            B.11         C.15       D.不确定 

9.在一棵三元树中度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为(  )个:    A.4             B.5          C.6      D.7  

10.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是(    )。

A.M1          B.M1+M2       C.M3           D.M2+M3

11.具有10个叶结点的二叉树中有(  )个度为2的结点, 

A.8           B.9             C.10          D.11

12.一棵完全二叉树上有1001个结点,其中叶子结点的个数是(    )

A. 250   B. 500    C.254     D.505      E.501    

13. 设给定权值总数有n 个,其哈夫曼树的结点总数为(    )

A.不确定        B.2n         C.2n+1         D.2n-1

14. 有n个叶子的哈夫曼树的结点总数为(    )。

A.不确定          B.2n          C.2n+1          D.2n-1

15*.若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为( )。

16. 有关二叉树下列说法正确的是(    )

A.二叉树的度为2                   B.一棵二叉树的度可以小于2                                                                                 

C.二叉树中至少有一个结点的度为2   D.二叉树中任何一个结点的度都为2

17.二叉树的第I层上最多含有结点数为(  )

18. 一个具有1025个结点的二叉树的高h为(    )

A.11          B.10        C.11至1025之间      D.10至1024之间

19.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有(    )结点

A.2h     B.2h-1        C.2h+1         D.h+1    

20.对于有n 个结点的二叉树, 其高度为(    )

21. 一棵具有 n个结点的完全二叉树的树高度(深度)是(    )

22.深度为h的满m叉树的第k层有(  )个结点。(1=<k=<h)

23.在一棵高度为k的满二叉树中,结点总数为(    )

24.高度为 K的二叉树最大的结点数为(    )。

25. 一棵树高为K的完全二叉树至少有(    )个结点

26. 将有关二叉树的概念推广到三叉树,则一棵有244个结点的完全三叉树的高度()

A.4           B.5           C.6           D.7

27. 利用二叉链表存储树,则根结点的右指针是(    )。

A.指向最左孩子        B.指向最右孩子         C.空        D.非空

28.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用(    )次序的遍历实现编号。

A.先序           B. 中序          C. 后序          D. 从根开始按层次遍历

29*.树的后根遍历序列等同于该树对应的二叉树的(    ).

A. 先序序列                   B. 中序序列            C. 后序序列

30.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用(    )遍历方法最合适。

A.前序     B.中序      C.后序      D.按层次

31.在下列存储形式中,哪一个不是树的存储形式?(    )

A.双亲表示法  B.孩子链表表示法 C.孩子兄弟表示法 D.顺序存储表示法

32.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是(    )

A.CABDEFG           B.ABCDEFG       C.DACEFBG           D.ADCFEG     

33.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为(    )。

A.CBEFDA       B. FEDCBA       C. CBEDFA       D.不定    

34.已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac ,  它的前序遍历是(    )。

      A.acbed       B.decab    C.deabc      D.cedba    

35. 某二叉树中序序列为A,B,C,D,E,F,G,后序序列为B,D,C,A,F,G,E 则前序序列是:

A.E,G,F,A,C,D,B      B.E,A,C,B,D,G,F      C.E,A,G,C,F,B,D      D.上面的都不对 

36. 上题的二叉树对应的森林包括多少棵树(    )

A.1         B.2       C.3    D.概念上是错误的  

37.二叉树的先序遍历和中序遍历如下: 先序遍历:EFHIGJK;中序遍历: HFIEJKG 。该二叉树根的右子树的根是: 

A、 E         B、 F      C、 G       D、 H   

38*.将一棵树t 转换为孩子—兄弟链表表示的二叉树h,则t的后根遍历是h 的(    )

A.前序遍历     B.中序遍历      C.后序遍历

39*. 某二叉树T有n个结点,设按某种顺序对T中的每个结点进行编号,编号为1,2,… ,n,且有如下性质:T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树的结点中,其最小编号等于V右子树上结点的最大编号加1。这时是按(    )编号的。

A.中序遍历序列 B.前序遍历序列 C.后序遍历序列  D.层次顺序 

40.下面的说法中正确的是(    ).

(1)任何一棵二叉树的叶子结点在三种遍历中的相对次序不变;

(2)按二叉树定义,具有三个结点的二叉树共有6种。

A.(1)(2)   B.(1)   C.(2)    D.(1)、(2)都错  

41.对于前序遍历与中序遍历结果相同的二叉树为(1);对于前序遍历和后序遍历结果相同的二叉树为(2)。

A.一般二叉树    B.只有根结点的二叉树     C.根结点无左孩子的二叉树 

D.根结点无右孩子的二叉树  E.所有结点只有左子数的二叉树 F.所有结点只有右子树的二叉树

42.一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足(    )

A.所有的结点均无左孩子B.所有的结点均无右孩子

C.只有一个叶子结点D.是任意一棵二叉树

43.在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序(    )

A.都不相同  B.完全相同   C.先序和中序相同,而与后序不同 

 D.中序和后序相同,而与先序不同  

44.某二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

A.空或只有一个结点    B.任一结点无左子树  

 C.高度等于其结点数    D.任一结点无右子树

45.在完全二叉树中,若一个结点是叶结点,则它没(    )。

A.左子结点    B.右子结点   C.左子结点和右子结点    D.左子结点,右子结点和兄弟结点

46.在下列情况中,可称为二叉树的是(    )

    A.每个结点至多有两棵子树的树  B. 哈夫曼树    C.每个结点只有一棵右子树         D.以上答案都不对  

47*. 一棵左子树为空的二叉树在先序线索化后,其中空的链域的个数是:(    )

A.不确定         B. 0        C. 1        D. 2   

48*. 一棵左右子树均不空的二叉树在先序线索化后,其中空的链域的个数是:(    )。

A. 0            B. 1        C. 2          D. 不确定 

49. 若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为(    )

A.X的双亲  B.X的右子树中最左的结点  C.X的左子树中最右结点  D.X的左子树中最右叶结点

53*.(    )的遍历仍需要栈的支持.

A.前序线索树     B.中序线索树      C.后序线索树  

55*. 设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有(    )个。

A. n-1       B.n       C. n+1       D. n+2  

56*.如果T2是由有序树T转换而来的二叉树,那么T中结点的后序就是T2中结点的(    )。

A.先序       B.中序        C.后序    D.层次序  

57*. 由3 个结点可以构造出多少种不同的有向树?(    )

A.2        B.3         C.4          D.5  

58.由3 个结点可以构造出多少种不同的二叉树?(    )

A.2       B.3         C.4         D.5   

59*.下述二叉树中,哪一种满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序()。

 A.二叉排序树  B.哈夫曼树 C.AVL树  D.堆

60.在叶子数目和权值相同的所有二叉树中,最优二叉树一定是完全二叉树,该说法(    )。

  A.正确  B.错误 

61.最优二叉树(哈夫曼树)、最优查找树均为平均查找路径长度最小的树,其中对最优二叉树,n表示(1),对最优查找树,n表示(2),构造这两种树均(3)。

A.结点数  B.叶结点数  C.非叶结点数  D.度为2的结点数  E.需要一张n个关键字的有序表 F.需要对n个关键字进行动态插入   G.需要n个关键字的查找概率表    H.不需要任何前提

62.下述编码中哪一个不是前缀码(        )。

A.(00,01,10,11)  B.(0,1,00,11)  C.(0,10,110,111)  D.(1,01,000,001)

63.下面几个符号串编码集合中,不是前缀编码的是(    )。

A.{0,10,110,1111}            B.{11,10,001,101,0001}           C.{00,010,0110,1000}

D.{b,c,aa,ac,aba,abb,abc}  

64. 当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将数据存放在一维数组 A[l..n]中时,数组中第i个结点的左孩子为(    )

A.A[2i](2i=<n)       B. A[2i+1](2i+1=< n)         C.A[i/2]          D.无法确定

65. 一棵有n个结点的二叉树,按层次从上到下,同一层从左到右顺序存储在一维数组A[1..n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是(    )

A.A[2i](2i<=n)  B.A[2i+1](2i+1<=n)  C.A[i-2]   D.条件不充分,无法确定

67.深度为h的二叉树至多有(    )个结点。

68.对于二叉树来说,第K层至多有(    )个结点。

69.某二叉树的先序遍历序列为:IJKLMNO,中序遍历序列为: JLKINMO,则后序遍历序列为(    )。

A. JLKMNOI B.LKNJOMI C.LKJNOMI D.LKNOJMI

70.某二叉树的后序遍历序列为:DABEC,中序遍历序列为: DEBAC,则先序遍历序列为(    )。

A.ACBED B.DECAB C.DEABC D.CEDBA

71.具有35个结点的完全二叉树的深度为(    )

A.5  B.6  C.7  D.8

72*.二叉树按某种顺序线索化后,任一结点均有指向其前趋和后继的线索,这种说法(    )。

A.正确 B.错误 C.不确定 D.都有可能

73.根据树的定义,具有3个结点的树有(    )种树型。

A.2      B.3      C.4        D.5

74.下列4棵树,(    )不是完全二叉树。

75.对于一棵满二叉树,m个树叶,n个结点,深度为h,则(    )。

76.一棵n个结点的二叉树,其空指针域的个数为(    )。

A.n B.n+1 C.n-1    D.不确定

77.任何一棵二叉树的叶子结点在前序、中序、后序遍历序列中的相对次序(    )。

A.不发生改变 B.发生改变 C.不能确定 D.以上都不对

78.A,B为一棵二叉树上的两个叶子结点,在中序遍历时,A在B前的条件是(    )。

A.A在B的右方   B.A是B的祖先    C.A在B的左方    D.A是B的子孙

 

1.图中有关路径的定义是(    )。

A.由顶点和相邻顶点序偶构成的边所形成的序列      B.由不同顶点所形成的序列

C.由不同边所形成的序列                          D.上述定义都不是

2.设无向图的顶点个数为n,则该图最多有(  )条边。

A.n-1        B.n(n-1)/2       C. n(n+1)/2        D.0       E.n2

3.一个n个顶点的连通无向图,其边的个数至少为(    )。

A.n-1           B.n            C.n+1             D.nlogn;

4.要连通具有n个顶点的有向图,至少需要(    )条边。

A.n-l           B.n            C.n+l             D.2n

5.n个结点的完全有向图含有边的数目(   )。

A.n*n        B.n(n+1)     C.n/2            D.n*(n-l)

6.一个有n个结点的图,最少有(    )个连通分量,最多有(    )个连通分量。

A.0                B.1                 C.n-1             D.n

7.在一个无向图中,所有顶点的度数之和等于所有边数(    )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的(    )倍。

A.1/2          B.2             C.1               D.4

8*.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为(  )。

A.5          B.6               C.8               D.9     

9.用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是(  )。

A.逆拓扑有序         B.拓扑有序            C.无序的      

10*.下面结构中最适于表示稀疏无向图的是(    ),适于表示稀疏有向图的是(    )。

A.邻接矩阵      B.逆邻接表     C.邻接多重表      D.十字链表     E.邻接表           

11.下列哪一种图的邻接矩阵是对称矩阵?(    )

A.有向图            B.无向图           C.AOV网          D.AOE网

12.  从邻接阵矩可以看出,该图共有(①)个顶点;如果是有向图该图共有(②) 条弧;如果是无向图,则共有(③)条边。

①.A.9     B.3      C.6     D.1     E.以上答案均不正确

②.A.5     B.4      C.3     D.2     E.以上答案均不正确

③.A.5     B.4      C.3     D.2     E.以上答案均不正确

13.当一个有N个顶点的图用邻接矩阵A表示时,顶点Vi的度是( )。

A.      B.     C.      D.+

14.用相邻矩阵A表示图,判定任意两个顶点Vi和Vj之间是否有长度为m 的路径相连,则只要检查(    )的第i行第j列的元素是否为零即可。

A.mA         B.A             C.Am              D.Am-1

15. 下列说法不正确的是(    )。

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次   C.图的深度遍历不适用于有向图

B.遍历的基本算法有两种:深度遍历和广度遍历           D.图的深度遍历是一个递归过程

16.无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是(    )。

A.a,b,e,c,d,f     B.a,c,f,e,b,d      C.a,e,b,c,f,d      D.a,e,d,f,c,b

17. 设图如右所示,在下面的5个序列中,符合深度优先遍历的序列有多少?(    )

a e b d f c      a c f d e b      a e d f c b     a e f d c b       a e f d b c

A.5个             B.4个           C.3个           D.2个   

 

 

 

 

 

 

 

 

             第17题图                                  第18题图

18.下图中给出由7个顶点组成的无向图。从顶点1出发,对它进行深度优先遍历得到的序列是( ① ),而进行广度优先遍历得到的顶点序列是( ② )。

①.A.1354267     B.1347652     C.1534276    D.1247653     E.以上答案均不正确

②.A.1534267     B.1726453     C.l354276     D.1247653     E.以上答案均不正确   

19.下面哪一方法可以判断出一个有向图是否有环(回路): 

A.深度优先遍历   B. 拓扑排序   C. 求最短路径  D. 求关键路径

20*. 在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为(    )。

A. O(n)         B. O(n+e)        C. O(n2)       D. O(n3)

21. 下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为( 1 ),下面步骤重复n-1次: a:( 2 );b:( 3 );最后:( 4 )。

(1).A.VT,ET为空                       B.VT为所有顶点,ET为空

          C.VT为网中任意一点,ET为空         D.VT为空,ET为网中所有边

(2).A. 选i属于VT,j不属于VT,且(i,j)上的权最小

          B.选i属于VT,j不属于VT,且(i,j)上的权最大

          C.选i不属于VT,j不属于VT,且(i,j)上的权最小

          D.选i不属于VT,j不属于VT,且(i,j)上的权最大

(3).A.顶点i加入VT,(i,j)加入ET         B. 顶点j加入VT,(i,j)加入ET

          C. 顶点j加入VT,(i,j)从ET中删去     D.顶点i,j加入VT,(i,j)加入ET

(4).A.ET 中为最小生成树                    B.不在ET中的边构成最小生成树

          C.ET中有n-1条边时为生成树,否则无解   D.ET中无回路时,为生成树,否则无解

22*. (1). 求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义;

(2). 利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3 ) ;(图用邻接矩阵表示)

(3). Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路。

上面不正确的是(    )。

A.(1),(2),(3)         B.(1)          C.(1),(3)         D.(2),(3)

23.当各边上的权值(  )时,BFS算法可用来解决单源最短路径问题。

A.均相等     B.均互不相等     C.不一定相等

24. 求解最短路径的Floyd算法的时间复杂度为(    )。

A.O(n)        B. O(n+c)     C. O(n*n)     D. O(n*n*n)

25.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},

E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是(  )。

A.V1,V3,V4,V6,V2,V5,V7             B.V1,V3,V2,V6,V4,V5,V7

C.V1,V3,V4,V5,V2,V6,V7             D.V1,V2,V5,V3,V4,V6,V7

26.若一个有向图的邻接距阵中,主对角线以下的元素均为零,则该图的拓扑有序序列(    )。  

A.存在   B.不存在

27.一个有向无环图的拓扑排序序列(    )是唯一的。

A.一定             B.不一定

28. 在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是(    )。  

A.G中有弧<Vi,Vj>             B.G中有一条从Vi到Vj的路径                                               

C.G中没有弧<Vi,Vj>            D.G中有一条从Vj到Vi的路径   

29. 在用邻接表表示图时,拓扑排序算法时间复杂度为(    )。

A. O(n)         B. O(n+e)       C. O(n*n)      D. O(n*n*n)

30. 关键路径是事件结点网络中(    )。

A.从源点到汇点的最长路径        B.从源点到汇点的最短路径

C.最长回路                      D.最短回路

31*. 下面关于求关键路径的说法不正确的是(    )。

    A.求关键路径是以拓扑排序为基础的

    B.一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同

    C.一个事件的最迟开始时间为以该事件为尾的弧的活动最迟开始时间与该活动的持续时间的差

    D.关键活动一定位于关键路径上

32*.下列关于AOE网的叙述中,不正确的是(    )。

A.关键活动不按期完成就会影响整个工程的完成时间

B.任何一个关键活动提前完成,那么整个工程将会提前完成

C.所有的关键活动提前完成,那么整个工程将会提前完成

D.某些关键活动提前完成,那么整个工程将会提前完成

33.在一个图中,所有顶点的度数之和等于图的边数的(    )倍。

A.1/2 B.1 C.2 D.4

34.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(    )倍。

A.1/2 B.1 C.2 D.4

35.有8个结点的无向图最多有(    )条边。

A.14 B.28 C.56 D.112

36.有8个结点的无向连通图最少有(    )条边。

A.5 B.6 C.7 D.6

37.有8个结点的有向完全图有(    )条边。

A.14 B.28 C.56 D.112

38.用邻接表表示图进行广度优先遍历时,通常采用(    )来实现算法的。

A.栈 B.队列 C.树 D.图

39.用邻接表表示图进行深度优先遍历时,通常采用(    )来实现算法的。

A.栈 B.队列 C.树 D.图

40.深度优先遍历类似于二叉树的(    )。

A.先序遍历 B.中序遍历 C.后序遍历 D.层次遍历

41.任何一个无向连通图的最小生成树(    )。

A.只有一棵 B.一棵或多棵 C.一定有多棵 D.可能不存在

42.生成树的构造方法只有(    )。

A.深度优先 B.深度优先和广度优先   

C.无前趋的顶点优先 D.无后继的顶点优先

 

 

 

 

 

 

 

判断题

1. 数据元素是数据的最小单位。X

2. 记录是数据处理的最小单位。X

3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;X

4.算法的优劣与算法描述语言无关,但与所用计算机有关。X

5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。

6.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。X

7.程序一定是算法。X

8.数据的物理结构是指数据在计算机内的实际存储形式。

9. 数据结构的抽象操作的定义与具体实现有关。X

10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。X

11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。X

12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。

13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. X

14.数据元素是数据的最小单位。X

15.程序和算法原则上没有区别,在讨论数据结构时可以通用。X

16.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构两类。

17.数据的存储结构是数据的逻辑结构的存储映像。

 

1. 链表中的头结点仅起到标识的作用。X

2. 顺序存储结构的主要缺点是不利于插入或删除操作。

3.线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。

4.顺序存储方式插入和删除时效率太低,因此它不如链式存储方式好。X

5. 对任何数据结构链式存储结构一定优于顺序存储结构。X

6.顺序存储方式只能用于存储线性结构。X

7.集合与线性表的区别在于是否按关键字排序。X

9. 线性表的特点是每个元素都有一个前驱和一个后继。X

10. 取线性表的第i个元素的时间同i的大小有关.X

12. 线性表只能用顺序存储结构实现。X

13. 线性表就是顺序存储的表。X

15. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。X

16.链表是采用链式存储结构的线性表,进行插入、删除操作时,在链表中比在顺序存储结构中效率高。   

17.线性表的链式存储结构优于顺序存储。X

18.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。

19.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。X

20.在线性表的顺序结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。

21.顺序存储方式的优点是存储密度大,插入、删除效率高。X

22.顺序存储的线性表可以实现随机存取。

 

 

 

1. 消除递归不一定需要使用栈,

2. 栈是实现过程和函数等子程序所必需的结构。

5. 即使对不含相同元素的同一输入序列进行两组不同的合法的入栈和出栈组合操作,所得的输出序列也一定相同。X

7. 栈与队列是一种特殊操作的线性表。

8. 若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列3,2,5,6,4,1.

9. 栈和队列都是限制存取点的线性结构。

10.若输入序列为1,2,3,4,5,6,则通过一个栈可以输出序列1,5,4,6,2,3。X

11. 任何一个递归过程都可以转换成非递归过程。

12. 只有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈。X

13. 队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。X

14. 通常使用队列来处理函数或过程的调用。X

15. 队列逻辑上是一个下端和上端既能增加又能减少的线性表。X

18. 队列和栈都是运算受限的线性表,只允许在表的两端进行运算。X

19. 栈和队列都是线性表,只是在插入和删除时受到了一些限制。

20. 栈和队列的存储方式,既可以是顺序方式,又可以是链式方式。

21.空栈就是所有元素都为0的栈。X

22.一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D。X

23.队列是限制在两端进行操作的线性表。

24.在循环队列中,若尾指针rear大于头指针front,其元素个数为rear-front。

25.队列是一种“后进先出”的线性表。 X

 

1. 二叉树是度为2的有序树。

2. 完全二叉树一定存在度为1的结点。

3. 对于有N个结点的二叉树,其高度为log2n。

4.深度为K的二叉树中结点总数≤2k-1。

5*. 二叉树以后序遍历序列与前序遍历序列反映的同样的信息(他们反映的信息不独立)。

6. 二叉树的遍历结果不是唯一的.

7*. 二叉树的遍历只是为了在应用中找到一种线性次序。

9. 一个树的叶结点,在前序遍历和后序遍历下,皆以相同的相对位置出现。

10. 二叉树的前序遍历并不能唯一确定这棵树,但是,如果我们还知道该树的根结点是那一个,则可以确定这棵二叉树。

11. 一棵一般树的结点的前序遍历和后序遍历分别与它相应二叉树的结点前序遍历和后序遍历是一致的。

12.对一棵二叉树进行层次遍历时,应借助于一个栈。

13.用树的前序遍历和中序遍历可以导出树的后序遍历。

15. 用一维数组存储二叉树时,总是以前序遍历顺序存储结点。

16*. 中序遍历二叉链存储的二叉树时,一般要用堆栈;中序遍历检索二叉树时,也必须使用堆栈。

17.中序遍历一棵二叉排序树的结点就可得到排好序的结点序列

21.由一棵二叉树的前序序列和后序序列可以唯一确定它。

22.完全二叉树中,若一个结点没有左孩子,则它必是树叶。

24. 一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i< n),右儿子是2i+1(2i+1<n)。

25. 给定一棵树,可以找到唯一的一棵二叉树与之对应。

26. 一棵树中的叶子数一定等于与其对应的二叉树的叶子数。

27. 用链表(llink-rlink)存储包含n个结点的二叉树,结点的2n个指针区域中有n-1个空指针。

28. 二叉树中每个结点至多有两个子结点,而对一般树则无此限制.因此,二叉树是树的特殊情形.

29.树形结构中元素之间存在一个对多个的关系。

30.在二叉树的第i层上至少有2i-1个结点(i>=1)。

31.必须把一般树转换成二叉树后才能进行存储。

32.完全二叉树的存储结构通常采用顺序存储结构。

33.将一棵树转成二叉树,根结点没有左子树; 

34.在二叉树中插入结点,则此二叉树便不再是二叉树了。

35.二叉树是一般树的特殊情形。

36.树与二叉树是两种不同的树型结构。

37*. 非空的二叉树一定满足:某结点若有左孩子,则其中序前驱一定没有右孩子

38.在任意一棵非空二叉排序树,删除某结点后又将其插入,则所得二叉排序树与删除前原二叉排序树相同。

39.度为二的树就是二叉树。

40*.深度为k具有n个结点的完全二叉树,其编号最小的结点序号为 ë2k-2û+1。

41*.下面二叉树的定义只有一个是正确的,请在正确的地方画“√”。

(1)它是由一个根和两株互不相交的、称为左子树和右子树的二叉树组成。

(2)(a)在一株二叉树的级i上,最大结点数是2i-1(i≥1)

(b)在一棵深度为k的二叉树中,最大结点数是2k-1+1(k≥1)。

(3)二叉树是结点的集合,满足如下条件:

(a)它或者是空集;

(b)或者是由一个根和两个互不相交的、称为左子树和右子树的二叉树组成。

45.霍夫曼树的结点个数不能是偶数。

46. 一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和。

47. 哈夫曼树无左右子树之分。

48.当一棵具有n个叶子结点的二叉树的WPL值为最小时,称其树为Huffman树,且其二叉树的形状必是唯一的。

49.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近。

50. 用链表(llink-rlink)存储包含n个结点的二叉树时,结点的2n个指针区域中有n+1个空指针。(  )

51.树结构中每个结点最多只有一个直接前趋。

52.完全二叉树一定是满二叉树。

53.由树转换成二叉树,其根结点的右子树一定为空。

54*.一棵二叉树中序遍历序列的最后一个结点,必定是该二叉树前序遍历的最后一个结点。

55.二叉树的前序遍历中,任意一个结点均处于其子树结点的前面。

 

 

1.树中的结点和图中的顶点就是指数据结构中的数据元素。(    )

2.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。(   )

3.对有n个顶点的无向图,其边数e与各顶点度数间满足下列等式e=。(    )

4. 有e条边的无向图,在邻接表中有e个结点。(    )

5. 有向图中顶点V的度等于其邻接矩阵中第V行中的1的个数。(   )

6.强连通图的各顶点间均可达。(    )

7.强连通分量是无向图的极大强连通子图。(    )

8.连通分量指的是有向图中的极大连通子图。(    )

9*.邻接多重表是无向图和有向图的链式存储结构。(    )

10*. 十字链表是无向图的一种存储结构。(    )

11. 无向图的邻接矩阵可用一维数组存储。(    )

12.用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。(    )

13.有n个顶点的无向图, 采用邻接矩阵表示, 图中的边数等于邻接矩阵中非零元素之和的一半。(    )

14. 有向图的邻接矩阵是对称的。(    )

15.无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。(    )

16. 邻接矩阵适用于有向图和无向图的存储,但不能存储带权的有向图和无向图,而只能使用邻接表存储形式来存储它。

17. 用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中结点个数有关,而与图的边数无关。(    )

18*.一个有向图的邻接表和逆邻接表中结点的个数可能不等。(    )

19.需要借助于一个队列来实现DFS算法。(    )                

20. 广度遍历生成树描述了从起点到各顶点的最短路径。(    )

21.任何无向图都存在生成树。(    )

22. 不同的求最小生成树的方法最后得到的生成树是相同的.(    )

23.带权无向图的最小生成树必是唯一的。(    )

24. 最小生成树是唯一的。(    )

25.一个网(带权图)都有唯一的最小生成树。(    )

26.连通图上各边权值均不相同,则该图的最小生成树是唯一的。(    )

27.带权的连通无向图的最小(代价)生成树(支撑树)是唯一的。(   )

28. 最小生成树的KRUSKAL算法是一种贪心法(GREEDY)。(    )

29. 求最小生成树的普里姆(Prim)算法中边上的权可正可负。(    )

30.带权的连通无向图的最小代价生成树是唯一的。(    )

31*. 最小生成树问题是构造连通网的最小代价生成树。(    )

32. 在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值。(    )

33*. 在用Floyd 算法求解各顶点的最短路径时,每个表示两点间路径的pathk-1[I,J]一定是pathk [I,J]的子集(k=1,2,3,…,n)。(    )

34.拓扑排序算法把一个无向图中的顶点排成一个有序序列。(  )

35.拓扑排序算法仅能适用于有向无环图。(    )

36. 无环有向图才能进行拓扑排序。(    )

37. 有环图也能进行拓扑排序。(    )

38.拓扑排序的有向图中,最多存在一条环路。(    )

39.任何有向图的结点都可以排成拓扑排序,而且拓扑序列不唯一。(    )

40. 既使有向无环图的拓扑序列唯一,也不能唯一确定该图。(    )

41.若一个有向图的邻接矩阵对角线以下元素均为零,则该图的拓扑有序序列必定存在。(    )

42.AOV网的含义是以边表示活动的网。(    )

43.对一个AOV网,从源点到终点的路径最长的路径称作关键路径。

44. 关键路径是AOE网中从源点到终点的最长路径。(    )

45. AOE网一定是有向无环图。(    )

46*. 在表示某工程的AOE网中,加速其关键路径上的任意关键活动均可缩短整个工程的完成时间。(    )

47*.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。(    )

48.在AOE图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少。(    )

49.当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。

50.图可以没有边,但不能没有顶点。

51.在有向图中,<v1,v2>与<v2,v1>是两条不同的边。

52.邻接表只能用于有向图的存储。

53.用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关。

54.有向图不能进行广度优先遍历。

 

 

应用题 

 

 

 

算法题 

 

猜你喜欢

转载自blog.csdn.net/ao_mike/article/details/106571359
今日推荐