收藏 分享(赏)

《数据结构》样卷.doc

上传人:dreamzhangning 文档编号:2701640 上传时间:2018-09-25 格式:DOC 页数:11 大小:469.50KB
下载 相关 举报
《数据结构》样卷.doc_第1页
第1页 / 共11页
《数据结构》样卷.doc_第2页
第2页 / 共11页
《数据结构》样卷.doc_第3页
第3页 / 共11页
《数据结构》样卷.doc_第4页
第4页 / 共11页
《数据结构》样卷.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、12009 级数据结构考试样卷一、单项选择题 (本大题共 30 小题,每小题 1 分,共 30 分)1.在一个单链表 HL 中,若要在指针 q 所指结点的后面插入一个由指针 p 所指向的结点,则执行( C )A. q.next=p.next;p.next=q; B. p.next=q.next;q=p;C. p.next=q.next;q.next=p; D. q.next=p;p.next=q.next;2.数据的四种存储结构是 ( A )A. 顺序存储结构、链接存储结构、索引存储结构和散列存储结构B. 线性存储结构、非线性存储结构、树型存储结构和图型存储结构C. 集合存储结构、一对一存储结

2、构、一对多存储结构和多对多存储结构D. 顺序存储结构、树型存储结构、图型存储结构和散列存储结构3.若对某线性表最常用的操作是在最后一个结点之后插入一个新结点或删除最后一个结点,要使操作时间最少,下列选项中,应选择的存储结构是( C )A.无头结点的单向链表 B.带头结点的单向链表C.带头结点的双循环链表 D.带头结点的单循环链表4.若带头结点的单链表的头引用为head,则判断链表是否为空的条件是 ( B )A. head=NULL B. head.next=NULL C. head!=NULL D. head.next!=head5.若元素的入栈顺序为1,2,3,n,如果第2个出栈的元素是n,

3、则输出的第i(1, , ,则数据结构 A 是( B )。A. 线性结构 B. 树型结构 C. 物理结构 D. 图型结构20.设一棵二叉树的深度为 k,则该二叉树中最多有( D )个结点。A. 2k-1 B. 2k C. 2k-1 D. 2k-121.设用链表作为栈的存储结构则退栈操作( B ) 。A. 必须判别栈是否为满 B. 必须判别栈是否为空C. 判别栈元素的类型 D. 对栈不作任何判别22.函数 substr(“DATASTRUCTURE”,5,9)的返回值为( A )。A. “STRUCTURE” B. “DATA”C. “ASTRUCTUR” D. “DATASTRUCTURE”23

4、.设指针变量 front 表示链式队列的队头指针,指针变量 rear 表示链式队列的队尾指针,指针变量 s 指向将要入队列的结点 X,则入队列的操作序列为(C ) 。A. front.next=s;front=s; B. s.next=rear;rear=s;C. rear.next=s;rear=s; D. s.next=front;front=s;24.设指针变量 top 指向当前链式栈的栈顶,则删除栈顶元素的操作序列为( D )。A. top=top+1; B. top=top-1; C. top.next=top; D. top=top.next;25.设带有头结点的单向循环链表的头指

5、针变量为 head,则其判空条件是(C ) 。A. head=0 B. head.next=0 C. head.next=head D. head!=026.在一个长度为 n 的顺序存储线性表中,删除第 i 个元素(1in)时,需要移动( A )个元素。 A. n-i B.n-i+1 C. n-i-1 D.i27.一个栈的入栈序列是 a,b,c,d,e,则下列序列中不可能的出栈序列是( B )A. b,c,d,a,e B. e,d,a,c,b C. b,c,a,d,e D. a,e,d,c,b28.对对称矩阵进行压缩存储的目的是( C )A. 便于进行矩阵运算 B. 便于输入和输出C.节省存储

6、空间 D. 降低运算的时间复杂度29. 将一棵树 t 转化为孩子-兄弟链表示的二叉树 h,则 t 的后根遍历是 h 的( C )A.先序遍历 B.后序遍历 C.中序遍历 D.层序遍历430.对下面有向图给出了四种可能的拓扑序列,其中错误的是( C ) A1,5,2,6,3,4 B1,5,6,2,3,4 C5,1,6,3,4,2 D5,1,2,6,4,3二、填空题(每空 1 分,共 30 分)1.C#语言中,接口定义的某种数据结构基本操作是定义在数据的 上的。( 填:A.逻辑结构;B.物理结构 ) (A)2.对顺序存储的线性表,设其长度为 n,在任何位置上插入或删除操作都是等概率的。删除一个元素

7、时平均移动表中的 个元素。删除操作的时间复杂度为 。(n-1)/2 ; O(n)3.对于一个长度为 n 带头结点的单链表,在表头插入元素的时间复杂度为 ,在表尾插入元素的时间复杂度为 。 O(1) 、O(n) 4.有模式串 T=“ADABCADADA” ,在与目标串进行匹配时,i,j 分别是指向目标串和模式串进行比较字符的指针,当匹配进行到 i=19,j=7 时出现了不匹配。则要进行指针回溯再进行下一次匹配,请问按照 KMP 算法下一次匹配开始时的 i= 和 j= 。按 BF 算法进行其下一次匹配开始时的 i= 和 j= 。 Nextj -1 0 0 1 0 0 1 2 3 2 答:KMP 算

8、法:i=19; j=2 BF 算法: i=13; j=05.确定矩阵 A100,100中元素 a0,0和 a99,99的值的时间复杂度是分别是和 ? O(1); O(1)6.确定有 n 个顶点的以邻接矩阵存储的图中有多少条边的时间复杂度是 ? O(n 2)7.一有 100 个顶点的无向图以行序为主序存储其邻接矩阵 A100,100上三角的元素于数组Bk中。求矩阵元素 A70,50在数组 Bk中的位置,即 k= ; 37448.若 A50,50为上三角矩阵,则 A45,30存储在数组 Bk中,则 k= 。 1275 9.具有 20 个结点的二叉树最小高度为 。 510.设森林 F 中有四棵顺序树

9、:T 1、T 2、T 3、T 4 ,它们的结点个数分别为 N1、N 2、N 3、N 4,与森林 F 对应的二叉树根结点的左子树上的结点数是 ;右子树上的结点数是 。 N 1-1; N 2+N3+N4,11.对于一个具有 n 个顶点和 e 条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_个和_个。 e 2e512.后缀算式 9 2 3 +- 10 2 / -的值为_。中缀算式(3+4X)-2Y/3 对应的后缀算式为_。-1 3 4 X * + 2 Y * 3 / -13已知有向图如下所示,其中顶点 A 到顶点 C 的最短路径是 ;最短路径的长度是_。(A,D,E,C) 3514 设指

10、针变量 p 指向双向循环链表中的结点 X,则删除结点 X 需要执行的语句序列为_;_(设结点中的两个指针域分别为 llink 和 rlink)。 P.llink.rlink=p.rlink; p.rlink.llink=p.llink15.设哈夫曼树中共有 99 个结点,则该树中有_个叶子结点;若采用二叉链表作为存储结构,则该树中有_ _个空指针域。 50,5116. 分块查找时要求数据按块有序,并建立索引表,索引记录至少需要包括每块的_和_等信息,以便在查找时,定位所在的块。最大关键码, 起始位置17一组初始记录关键字(十进制表示)序列为(55,63,44,38,75,80,31,56),按

11、最低位基数优先排序算法进行排序,完成第一趟分配和收集后的结果为_。 (80,31,63,44,55,75,56,38)三、综合题(共 8 小题,共 28 分)1.已知广义表如下:A=(B,y);B=(x,L) ;L=(a,b) 。要求 : (3分)(1)写出下列操作的结果:tail(A)=_ _ ;(1分) head(B)=_。(1分)(y) x(2)请画出广义表A对应的图形表示。 (1分)672.在如下数组A中链接存储了一个线性表,表头指针为 A 0.next,试写出该线性表。(2分)A 0 1 2 3 4 5 6 7 data 60 50 78 90 34 40next 3 5 7 2 0

12、 4 1线性表为:(78,50,40,60,34,90)3.请画出下图的邻接矩阵和邻接表。 (4 分)1. 邻接矩阵: 010010邻接表如下:4.已知一个图的顶点集 V 和边集 E 分别为:V=1,2,3,4,5,6,7;E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25;用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。(4分)用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)1

13、0, (4,7)205.设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。 (4分)(22,40,45,48,80,78),(40,45,48,80,22,78)(4 分)6已知待散列的线性表为(36,15,40,63,22) ,散列用的一维地址空间为06,假定选用的散列函数是 H(K)= K mod 7,若发生冲突采用线性探查法处理,试:8(1)计算出每一个元素的散列地址并在下图中填写出散列表: 0 1 2 3 4 5 6(2)求出在查找每一个元素概率相等情况下查找成功时的平均查找长度。H(36)=36 mod 7=1

14、; H (22)=(1+1) mod 7=2; .冲突H(15)=15 mod 7=1;.冲突 H2(22)=(2+1) mod 7=3; H (15)=(1+1) mod 7=2;H(40)=40 mod 7=5;H(63)=63 mod 7=0;H(22)=22 mod 7=1; .冲突 (2 分)(1) (1 分)0 1 2 3 4 5 663 36 15 22 40(2)ASL= (1 分)6.53217.设某棵二叉树的中序遍历序列为 DBEAC,前序遍历序列为 ABDEC,要求给出该二叉树的的后序遍历序列。(3 分) DEBCA8.假定用于通信的电文仅由 8 个字母 a,b,c,d,

15、e,f,g,h 组成,各个字母在电文中出现的频率分别为 5,23,3,6,10,11,36,4。试为这 8 个字母设计 Huffman 编码,并画出 Huffman 树及该电文的总码数。 ( 4 分 )解:其 huffman 编码为 ( 1 分 )a b c d E f g H0100 10 0000 0101 001 011 11 0001电文总码数为 4*5+2*25+4*3+4*6+3*10+3*11+2*36+4*4=253 (1 分 )9Huffman 树:( 2 分 )9839 5923 3617 227 10 11 113 4 5 6四算法题(共 3 小题,共 12 分)1.已知

16、用有序链表存储整数集合的元素。阅读算法 f30,并回答下列问题:int f30(LinkList ha,LinkList hb) /LinkList 是带有头结点的单链表/ha 和 hb 分别为指向存储两个有序整数集合的链表的头指针LinkList pa,pb;pa=ha.next;pb=hb.next;while(pa pb=pb.next;if(pa=NULL else return 0;(1)写出执行 f30(a,b)的返回值,其中:a 和 b 分别为指向存储集合2,4,5,7,9和2,4,5,7,9的链表的头指针;(2 分)(2)简述算法 f30 的功能; (2 分)答案: (1).1

17、 (2).判断两个整数集合是否完全相同(个数相同,对应位置上的数字相等) ,若相当等返回 1 不等返回 02.下面是单链表的两种定义方法,分别写出两种定义方法下的求单链表的长度的算法public int GetLength(),并指出算法的时间复杂度。 (5 分)10(1) 定义方法一:public class LinkList : IListDS private Node head; /单链表的头引用int length; /单链表长度 /头引用属性public Node Head get return head; set head = value; /构造器,初始化单链表public Li

18、nkList() head = null; (2) 定义方法二:public class LinkList : IListDS private Node head; /单链表的头引用/头引用属性public Node Head get return head; set head = value; /构造器,初始化单链表public LinkList() head = null; (1)public int GetLength() return length; (1 分) 时间复杂度为 O(1) (1 分)11(2)public int GetLength() Node p = head; (1

19、 分)int length = 0; while (p != null) +length; p = p.Next; (1 分) return length; 时间复杂度为 O(n) (1 分)4、下面是链队列的出队列操作的算法,横线处是否缺少了语句?若不缺少语句请说明理由,若缺少请补充所缺语句,并说明所补充语句的作用。 (3 分)public T Out() if (IsEmpty() Console.WriteLine(“Queue is empty!“); return default(T); Node p = front; front = front.Next; (1 分)(1 分)-num; return p.Data; 答案: if(front = null) (1 分) rear = null; (1 分)当出队列的是该链队列的最后一个元素时,解除该结点的尾引用,以便于自动垃圾回收,从而提高算法的空间效率。 (1 分)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报