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

数据结构复习题

一、单项选择题1. 线性表采用链式存储时,要求其地址().A. 连续与否均可B. 部分地址连续C. 必须是连续的D. 一定不是连续的2. 在一个长度为n的顺序线性表中删除第k个元素时,需要向前移动元素的个数是().A. n-kB. n-k+1C. n-k-1D. k3. 从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较的次数为().A. n/2B. nC. (n+1)/2D. (n-1)/24. 在一个无向图中,所有顶点的度数之和等于所有边的( )倍.A. 0B. 1C. 2D. 1/25. 具有n个顶点的无向连通图至少拥有()条边.A. n(n-1)B. n(n-1)/2C. n*nD. n-16. 下面程序段的时间复杂度为().i=1; k=0;while(i<n){k=k+10*i; i++;}A. O(1)B. O(n)C. O(lgn)D. O(k*i)7. 若让元素1, 2, 3依次进栈, 则出栈次序不可能出现()情况.A. 3, 2, 1B. 2, 1, 3C. 3, 1, 2D. 1, 3, 28. 对n个顶点的无向连通图, 使用prim算法生成最小生成树, 其时间复杂度为().A. O(log2n)B. O(nlog2n)C. O(n)D. O(n2)9. 具有64个结点的完全二叉树的高度是().A. 5B. 6C. 7D. 810. 深度为k的完全二叉树最多有()个结点.A. KB. K2C. 2 k-1D. K2-111.在数据结构中,从逻辑上可以把数据结构分为()两类。

A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构12.下面程序段的时间复杂度为()。

for (int i=0;i<m;i++)for (int j=0;j<n;j++)a[i][j]=i*j;A O (m2)B O (n2)C O (m*n)D O (m+n)13.在一个长度为n的顺序存储线性表中,向第k个元素(1≤k≤n+1)之前插入一个新元素时,需要从后向前依次后移()个元素A n-kB n-k+1C n-k-1D k14.在一个单链表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;15.在一个单链表HL中,若要在指针q所指的结点后面插入一个由指针p所指向的结点,则执行()。

A q->next=p->next; p->next=q;B p->next=q->next; q=p;C q->next=p->next; p =q->next;D p->next=q->next; q->next=p;16.在一个单链表HL中,若要删除由指针q所指向的结点的后继结点,则执行()。

A p=q->next; p->next=q->next;B p=q->next; q->next=p;C p=q->next; q->next=p->next;D q->next=q->next->next; q->next=q;17. 栈的插入和删除操作在()进行A 栈顶B 栈底C任意位置 D 指定位置18.在一个顺序队列中,队首指针指向队首元素的()位置。

A.前一个 B. 后一个 C. 当前19.按中序次序将n个结点的二叉树线索化,其时间复杂度大致为()。

A. O(n)B.O(1)C.O(log2n)D.O(n2)20.由权值分别为3,6,8,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。

A. 24B. 48C. 72D. 5321. 若需要利用形参直接访问实参,则应把形参变量说明为()参数。

A.指针 B. 引用 C. 值22. 执行下面程序段时,执行S语句的次数为().for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)S;A.n²B.n²/2C.n(n+1) D.n(n+1)/223. 对于一个具有n个顶点和e条边的连通图,其生成树中的边数为().A.n B.e C.n-1 D.e-124. 假定一个顺序队列的队首和队尾指针分别为front和rear,存放该队列的数组长度为N,则判断队空的条件为().A.front+1= =rear B.rear+1= =front C.front= =0 D.front= =rear二、填空题1. 若一棵二叉树的叶子结点树为n0, 则度数为2的结点数n2=2. 栈又称为表, 队列又称为表.3. 对不同的关键字, 通过哈希函数可能得到同一个哈希地址, 这种现象称为 .4. 在图的邻接矩阵中, 第i列所有值为1的元素个数等于顶点i的 .5. 初始化一个顺序栈时, 栈顶指针S.top= -1; 则栈空的判断条件是 .6. 四个顶点的无向完全图有条边.7. 散列函数S(n)=n%p中, p应取数.8. 若在插入查找过程中, 同时进行插入或删除操作, 则称此类查找表为 .9. 拓扑排序指的是, 找一个有向无环图的的过程.10. 数据的逻辑结构包括集合、、和 .11.数据的存储结构被分为_ _、_ _、_ _和_ _四种。

12.在线性结构、树结构和图结构中,前驱和后继结点之间分别存在着_、__ _和___ __的联系。

13.对于一个长度为n的单链接存储的线性表,在表头插入结点的时间复杂度为_ ,在表尾插入元素的时间复杂度为__ __。

14.在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的、和三项。

15.一个广义表中的元素分为原子元素和元素两类。

16.一棵深度为5的满二叉树中的结点数为__ 个,一棵深度为3的满四叉树中的结点数为_ _个。

17.在一个无向图中,所有顶点的度数之和等于所有边数的倍。

18.在一个具有n个顶点的无向完全图中,包含有边,在一个具有n个顶点的有向完全图中,包含有边。

19.以顺序查找为查找方法从长度为n的线性表中查找一个元素时,平均查找长度为____,平均时间复杂度为___ ___。

20.对于一棵具有n个结点的完全二叉树,若一个结点的编号为i(1<=i<=n),则它的左孩子结点的编号为__ _,右孩子结点的编号__ __,双亲结点编号为__ _.21.在一个堆的顺序存储中,若一个元素的下标为i(0<=i=n-1),则它的左孩子元素的下标为_ _,右孩子元素的下标为_ ___。

22.假定一个线性表为(12,23,74,55,63,40,82,36),如按key%3条件进行划分,使得同一余数的元素成为一个子表,则得到的三个子表分别为_ __, 和_ __.23.对于一个长度为n 的顺序存储的线性表,在表头插入元素的时间复杂度为_ __,在表尾插入元素的时间复杂度为_ _。

24. 当用长度为n的数组顺序存储一个栈时,假定用top= =-1表示栈空,则表示栈满的条件为_ ___。

25. 在一个具有n个顶点的无向图中,要连通所有顶点则至少需要__ __条边。

26.以二分查找方法查找一个线性表时,此线性表必须是_ __存储的_ _表。

三、解答题1. 请对下图回答下列问题(1)写出邻接矩阵 (2)画出逆邻接表2. 从一个空的二叉排序树开始,依次插入25, 13, 15, 34, 7, 20, 37. 画出插入完成后的二叉树.3. 二叉树顺序存储如下图. (1)画出二叉树表示. (2)写出先序、中序、后序遍历序列. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 204. 对下图使用Prim 算法构造最小生成树, 用图示描述构造过程.5. 已知一棵二叉树如下图所示,写出分别按前序、中序、后序遍历时得到的遍历序列。

6. 8个带权结点,其权值分别为3,6,5,9,12,7,10,8,试以他们为叶子结点构造一棵哈夫曼树,并计算出带权路径长度WPL 。

7. 设二维数组A 5×6的每个元素占4个字节,已知Loc (a 00)=1000,A 共占多少个字节?A 的终端结点a 4 5的起始地址为何?按行和按列优先存储时,a 2 5的起始地址分别为何?8. 假定一个二叉树广义表表示为a(b(c,d),e(f(,g))),分别写出对它进行先序、中序、后序和按层遍历的结果。

9. 已知一个图的顶点集和边集分别为v={0,1,2,3,4,5,6,7}e={(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,(3,5)9,(3,6)10,(4,6)4,(5,7)20}要求写出按照普里姆算法得到的最小生成树的各条边。

10. 下面是用二元组表示的数据结构,试画出它对应的图形表示,并指出它属于何种结构。

A=(K,R)其中K={a,b,c,d,e },R={r},r={<a,b>,<b,d>,<b,e>,<a,c>,<d,e>,<e,c>}四、应用题1. 给定关键字(35,16,49,26,38,11,50,13,45,27,31)和哈希函数H (key )=key % 7,用链地址法构造哈希表.2. 请给出对一组记录(54,38,96,23,15,90,72,60,45,83)进行希尔排序(增量序列为5,3,1)时的排序过程。

L D M A G F S W P3.已知一个图的顶点集V和边集E分别为:V={0,1,2,3,4,5,6,7}E={(0,1)8,(0,2)3,(0,3)5,(1,5)2,(2,3)20,(2,4)12,(3,5)7,(3,6)9,(4,6)4,(5,7)1 5};按照普里姆算法从顶点0出发得到最小生成树,试写出在最小生成树中依次得到的各条边。

4. 已知一组元素的排序码为(36,25,48,12,65,20),写出用直接插入排序法每次向前面有序表插入一个元素后的排列结果.5.设散列表长m=14,哈希函数为H(k)=k mod 11,表中一共有8个元素{15,27,50,73,49,61,37,60} ,试画出采用二次探测法处理冲突的散列表。

6.线性表的关键字集合为{113,12,180,138,92,67,94,134,252,6,70,323,60},共有13个元素,已知散列函数为:H(k)=k mod 13,采用链接表处理冲突,试设计这种链表结构。

相关主题