当前位置:文档之家› 数据结构期末复习题

数据结构期末复习题

第一类题目选择题1.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表4.执行下面程序短的时间复杂度为()。

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)5. 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A.O(n) O(n) B. O(n) O(1) C. O(1) O(n) D. O(1) O(1) 6.对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择()存储方式最节省时间。

A.顺序表B.带头结点的双循环链表C.单链表D.带尾结点的单循环链表7. 非空的单循环链表由头指针head指示,p 指针指向链尾结点的条件是()。

A. p==NULLB.p->next==NULLC. p==headD. p->next==head8.某个栈的入栈序列是a,b,c,d,e,则可能的出栈序列是()。

A.a,d,b,e,cB.e,b,c,a,dC.b,c,d,e,aD.e,a,b,c,d9. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 6 10.二叉树的第I层上最多含有结点数为()。

A.2IB.2I-1C.2I-1-1D.2I-111. 如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有的顶点,则该图一定是()。

A.完全图B.有回路C.连通图D.一棵树12. 栈在()中应用。

A. 递归调用B. 子程序调用C. 表达式求值D. A,B,C13. 一个递归算法必须包括()。

A. 递归部分B. 终止条件和递归部分C. 迭代部分D.终止条件和迭代部分14.下面给出的四种排序法中,()排序是稳定的排序法。

A.希尔B.快速C.堆D.二路归并15. 设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。

A.线性表的顺序存储结构 B. 队列 C. 线性表的链式存储结构 D.栈16. 栈和队列的共同点是()。

A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点17. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。

A. 1175B. 1180C. 1205D. 121018. 广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。

Head(Tail(Head(Tail(Tail(A)))))A. (g)B. (d)C. cD. d19.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B.11 C.15 D.不确定20. 设给定权值总数有n 个,其哈夫曼树的结点总数为( )A.不确定 B.2n C.2n+1 D.2n-121. 有关二叉树下列说法正确的是()A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为222.在一棵高度为k的满二叉树中,结点总数为()A.2k-1 B.2k C.2k-1 D.⎣log2k⎦+123. 利用二叉链表存储树,则根结点的右指针是()。

A.指向最左孩子 B.指向最右孩子 C.空 D.非空24.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。

A.CBEFDA B. FEDCBA C. CBEDFA D.不定25.n个结点的线索二叉树上含有的线索数为()A.2n B.n-l C.n+l D.n26.设无向图的顶点个数为n,则该图最多有()条边。

A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n227.n个结点的完全有向图含有边的数目()。

A.n*n B.n(n+1) C.n/2 D.n*(n-l)28. 下列说法不正确的是()。

A.图的遍历是从给定的源点出发每一个顶点仅被访问一次 C.图的深度遍历不适用于有向图B.遍历的基本算法有两种:深度遍历和广度遍历 D.图的深度遍历是一个递归过程29. 关键路径是事件结点网络中()。

A.从源点到汇点的最长路径 B.从源点到汇点的最短路径C.最长回路 D.最短回路30. 下面关于二分查找的叙述正确的是 ( )A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储31. 具有12个关键字的有序表,折半查找的平均查找长度()A. 3.1B. 4C. 2.5D. 532.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130)D. (100,80, 60, 90, 120,130,110)33. 下面关于哈希(Hash,杂凑)查找的说法正确的是( )A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小B.除留余数法是所有哈希函数中最好的C.不存在特别好与坏的哈希函数,要视情况而定D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可34.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。

()就是不稳定的排序方法。

A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序35.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选()排序为宜。

A.直接插入 B.直接选择 C.堆 D.快速 E.基数n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序36.若需在O(nlog2方法是()。

A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序37.下面的排序算法中,不稳定的是()A.起泡排序B.折半插入排序C.简单选择排序D.希尔排序E.基数排序F.堆排序。

第二类题目:判断题1.无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。

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

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

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

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

()6.中序遍历一棵二叉排序树的结点就可得到排好序的结点序列()7快速排序的速度在所有排序方法中为最快,而且所需附加空间也最少。

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

()9. 广义表的取表尾运算,其结果通常是个表,但有时也可是个单元素值。

()10. 若一个广义表的表头为空表,则此广义表亦为空表。

()11. 广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表。

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

()13. 通常使用队列来处理函数或过程的调用。

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

()15. 循环队列也存在空间溢出问题。

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

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

()18.归并排序在任何情况下都比所有简单排序速度快。

()19.二分查找只适用于有序表,包括有序的顺序表和有序的链表。

20.构造一个好的哈希函数必须均匀,即没有冲突。

21.排序算法中的比较次数与初始元素序列的排列无关。

()22.如果一个图有n个顶点和小于n-1 条边,则一定是非连通图。

23.如果某有向图的所有顶点可以构成一个拓扑排序,则说明有向图存在回路。

24.内排序中的快速排序方法,在任何情况下均可得到最快的排序效果。

25. 折半查找法的查找速度一定比顺序查找法快。

26. 就平均查找长度而言,分块查找最小,折半查找次之,顺序查找最大。

27.对无序表用二分法查找比顺序查找快。

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

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

()30.如果一个串中的所有字符均在另一串中出现,那么说明前者是后者的子串。

()第三类题目填空题1. 对于给定的n个元素,可以构造出的逻辑结构有_______,_______,_______,_______四种。

2.在单链表中设置头结点的作用是________。

3.对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为________,在给定值为x的结点后插入一个新结点的时间复杂度为________。

4.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成________和_______;而又根据指针的连接方式,链表又可分成________和________。

5.存储结构是逻辑结构在计算机中的实现,它包括的表示和的表示。

6.栈是_______的线性表,其运算遵循_______的原则。

7._______是限定仅在表尾进行插入或删除操作的线性表。

8.向一个长度为n的顺序表的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 _______个元素。

9. 对矩阵压缩是为了_______。

10.假设有6行8列的二维数组A(下标从1开始),每个元素占用6个字节,存储器按字节编址。

已知A的基地址为1000,则数组A共占用字节;若按行存储时,则元素A[3,6]的地址为。

11. 顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为次;当使用监视哨时,若查找失败,则比较关键字的次数为。

相关主题