当前位置:
文档之家› 厦门理工学院数据结构期末考试试题
厦门理工学院数据结构期末考试试题
级 班级
生
样的。 ) (
考 6、在一个图中,所有顶点的度数之和等于所有边数的 2 倍。 ) ( 专业 7、数据元素是数据的最小单位。 装
( )
8、数据的逻辑结构是指数据的各数据项之间的逻辑关系。 ) ( 9、从长度为 n 的顺序表中删除一个元素,所需要的时间都是 O(n) ( ) 。 10、
凡是空的单链表都是不含任何结点的。 ( )
B、都是先进先出
10、某算法的时间复杂度为O(n2) ,表明该算法的() 。
系
A、问题规模是n2
B、执行时间等于n2 D、问题规模与n2成正比
C、执行时间与n2成正比
第 3 页 共 6 页
11、若线性表最常用的运算是存取第i个元素及其前驱的值,则采用()存储方式节省时间。 A、单链表 B、双链表 C、单循环链表 D、顺序表。
姓名
息
typedef struc{ DataType data[ListSize];
信
订
int } Sqlist;
length;
级 班级
Void InsertList(Sqlist*L,DataType x,int i) { int j; if(i<1 || i>L.length+1)
考
生
printf(“Position error”);
级 班级
生
7、深度为6的二叉树至多有( )个结点。 A、32 B、31 C、63 D、64 ) ;
考
8、带头结点的单链表head为空的判定条件是(
专业
A、head==NULL
装
B、head->next==NULL D、head!=NULL ) 。 C、只允许在端点处插入和删除元素
C、head->next==head 9、栈和队列的共同点是( A、都是先进后出 D、没有共同点
1、线性表的逻辑顺序与存储顺序总是一致的。 ) ( 2、线性表的链式存储结构是一种随机存取的存储结构。 ) ( 订
息
信
3、二叉树按某种顺序线索化后,任一结点均有指向其前驱和后续的线索。 ) ( 4、二叉树的先序遍历序列中,任意一个结点均处在其孩子结点的前面。 ) ( 5、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序是不一
4、一棵有 11 个结点的二叉树的存储情况如下图所示,left[i]和 right[i]分别为 i 结点的左右孩子,根 结点为序号 3 的结点。画出该二叉树;并给出先序、中序和后序遍历该树的结点序列,并画出该二 叉树的中序线索二叉树和后序线索二叉树。 1 Left[i] Data[i] Right[i] 6 m f 2 3 7 a 9 k 4 5 8 b 10 l 4 6 7 5 c 11 r 8 (8 分) 9 2 d 1 g e 10 11
栏
D、队列的操作方式是先进后出
姓名
5、一个栈的入队序列是1,2,3,4,5,则栈的不可能的输出序列是( A、54321 B、43512 C、45321 D、12345
) ;
息
6、链表不具有的特点是() 。
信 订
A、可随机访问任一元素 C、不必事先估计存储空间
B、插入删除不需要移动元素 D、所需空间与线性表长度成正比
二、填空题: (本题共 10 小题, ,每空 1 分,共 15 分)
系
1、数据结构是一门研究非数值计算的程序设计问题中计算机的 们之间的 和运算等的学科。 ,它必具备输入、输出和
以及它
2、计算机算法指的是
等五个特性。
第 1 页 共 6 页
3、若已知一个栈的入栈序列是 1,2,3,4,。。。 。。。,n,其输出序列为 p1,p2,p3,……,pn,若 p1=n, 则 pi 为 。 。
。
;
三、选择题: (本题共 18 小题,每题 1 分,共 18 分)
1、算法分析的目的是( ) B、研究算法中的输入和输出的关系 D、分析算法的易懂性和文档性
A、找出数据结构的合理性 C、分析算法的效率以求改进
第 2 页 共 6 页
2、算法分析的两个主要方面是( A、空间复杂性和时间复杂性 C、可读性和文档性
专业
return ERROR
装
if(L.length>= ListSize) printf(“overflow”); exit(overflow); for(j=L.length-1th++; } ;
第 5 页 共 6 页
五、简答分析题: (本题共 6 小题,共 37 分)
5、输入一个正整数序列{40,28,6,72,100,3,54,1,80,91,38},完成下列各题: (5 分) a) 依次取出其中各数据,构造一棵二叉排序树 Bt,要求画出该二叉排序树; b) 然后删除结点 72,请画出删除结点 72 后的二叉排序树;并说明删除该结点的算法思想。 6、有一份电文中共使用 6 个字符:a、b、c、d、e、f,它们的出现频率依次为 6、9、10、5、2、 8,试画出对应的 Huffman 树(请按左子树根结点的权小于等于右子树根结点的权的次序构造, 给出构造步骤) ,求其加权路径长度;并求出每个字符的 Huffman 编码。 (8 分)
14、在一非空二叉树的中序遍历序列中,根结点的左边( ) 。 A、只有右子树上的所有结点 C、只有左子树上的部分结点 B、只有右子树上的部分结点 D、只有左子树上的所有结点
15、对一个满二叉树,m个树叶,n个结点,深度为h,则( ) 。 A、n=h+m B、h+m=2n C、n=2h-1 D、m=2h-1
8、下面程序段的时间复杂度是 i=s=0; while (s<n) { i++; s+=i; } 9、9、分析以下程序段的时间复杂度 int i,j,x=0; for (i=1;i<n;i++) for (j=i+1;j<=n;j++) x++; 10、下面程序段的时间复杂度是 i=1; While (i<n) i=i*3;
{s=s+k%10; if(s!=5) else count++; } printf(“%d”,count);
学号 线
(3)
} 2、实现在顺序表 L 的第 i(1≦i≦n+1)个位置上,插入一个新结点 x。请填空。 # define ListSize typedef int 100
栏
DataType;
12、在一个单链表中,删除*p结点之后的一个结点的操作是() 。 A、p->next=p; C、p->next->next=p; B、p->next->next=p->next; D、p->next=p->next->next;
13、循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前 队列中的元素个数是(1) A、 (rear-front+m)%m B、rear-front+1 C、rear-front-1 D、rear-front
厦门理工学院试卷
20 课程名称 -20 学年 第 学期 试卷 卷别
数据结构与算法
级 班级
A B
√
□
专业
学号 线
考试 方式
闭卷 □ 开卷 □
本试卷共 6 大题( 6 页),满分 100 分,考试时间 120 分钟。 请在答题纸上作答,在试卷上作答无效。
栏 姓名
一、判断题: (本题共 10 小题,每题 1 分,共 10 分)
1、当为解决某一问题而选择数据结构时,应从哪些方面考虑? (6 分)
2、在线性表的如下链表存储结构中,若未知链表头节点的指针,仅已知 p 指针指向的节点,能否 将它(p)从该结构中删除?为什么? 1)单链表 2)双链表 3)循环链表 3、有五个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素 C,D 最先出 栈(即 C 第一个且 D 第二个出栈)的次序有哪几个? (5 分) (5 分)
4、在一棵二叉树中,度为 0 的结点的个数为 n0,度为 2 的结点的个数为 n2,则有 n0= 5、线性结构中元素之间存在 元素之间存在 关系。 ,然后再查找相应的 。 关系,树形结构中元素之间存在
关系,图形结构中
6、在分块查找方法中,首先查找
7、设高度为 h 的二叉树上只有度为 0 和度为 2 的结点,则此类二叉树中所包含的结点数至少 为 。 。
16、表达式 a*(b+c)-d 的后缀表达式是( ) A、a*b+c-d B、abc+*dC、abc+*-d D、-*a+bcd
17、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。 A、1/2 B、1 C、2 D、4
18、对线性表进行二分查找时,要求线性表必须( ) 。 A、以顺序方式存储 B、以链接方式存储 C、以顺序方式存储,且结点按关键字有序排序 D、以链接方式存储,且结点按关键字有序排序
六、算法设计
(本题共 1 题,共 8 分)
1、设计一个算法,将顺序表重新排列成以第一个结点为界的两部分,前一部分元素的值都小于它, 后一部分元素的值都大于或等于它。
第 6 页 共 6 页
四、程序填空题: (本题共 2 小题,每题 6 分,共 12 分)
1、下面程序的功能是计算 100 至 1000 之间有多少个数其各位数字之和是 5,请填空。 #include <stdio.h> Main() { int i,s,k,count=0;
第 4 页 共 6 页
for(i=100;i<=1000;i++) { s =0; while ( k=i; (1) ) k= ; (2) ;}