您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 数据结构期末考试试题及答案
数据结构期末考试试题及答案期末样卷参考答案一.是非题(每题1分共10分)1.线性表的链式存储结构优于顺序存储结构。F2.栈和队列也是线性表。如果需要,可对它们中的任一元素进行操作。F3.字符串是数据对象特定的线性表。T4.在单链表P指针所指结点之后插入S结点的操作是:P-next=S;S-next=P-next;F5.一个无向图的连通分量是其极大的连通子图。T6.邻接表可以表示有向图,也可以表示无向图。T7.假设B是一棵树,B′是对应的二叉树。则B的后根遍历相当于B′的中序遍历。T8.通常,二叉树的第i层上有2i-1个结点。F9.对于一棵m阶的B-树,树中每个结点至多有m个关键字。除根之外的所有非终端结点至少有ém/2ù个关键字。F10.对于任何待排序序列来说,快速排序均快于起泡排序。F二.选择题(每题2分共28分)1.在下列排序方法中,(c)方法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);(d)方法所有情况下时间复杂度均为0(nlogn)。a.插入排序b.希尔排序c.快速排序d.堆排序2.在有n个结点的二叉树的二叉链表表示中,空指针数为(b)。a.不定b.n+1c.nd.n-13.下列二叉树中,(a)可用于实现符号不等长高效编码。a.最优二叉树b.次优查找树c.二叉平衡树d.二叉排序树4.下列查找方法中,(a)适用于查找有序单链表。a.顺序查找b.二分查找c.分块查找d.哈希查找5.在顺序表查找中,为避免查找过程中每一步都检测整个表是否查找完毕,可采用(a)方法。a.设置监视哨b.链表存贮c.二分查找d.快速查找6.在下列数据结构中,(c)具有先进先出特性,(b)具有先进后出特性。a.线性表b.栈c.队列d.广义表7.具有m个结点的二叉排序树,其最大深度为(f),最小深度为(b)。a.log2mb.└log2m┘+1c.m/2d.┌m/2┐-1e.┌m/2┐f.m8.已知一组待排序的记录关键字初始排列如下:56,34,58,26,79,52,64,37,28,84,57。下列选择中(c)是快速排序一趟排序的结果。(b)是希尔排序(初始步长为4)一趟排序的结果。(d)是基数排序一趟排序的结果。(a)是初始堆(大堆顶)。a.84,79,64,37,57,52,58,26,28,34,56。b.28,34,57,26,56,52,58,37,79,84,64。c.28,34,37,26,52,56,64,79,58,84,57。d.52,34,64,84,56,26,37,57,58,28,79。e.34,56,26,58,52,64,37,28,79,57,84。f.34,56,26,58,52,79,37,64,28,84,57。三.填空题(每题2分共20分)1.有向图的存储结构有(邻接矩阵)、(邻接表)、(十字链表)等方法。2.已知某二叉树的先序遍历次序为afbcdeg,中序遍历次序为cedbgfa。其后序遍历次序为(edcgbfa)。层次遍历次序为(afbcgde)。3.设有二维数组A5x7,每一元素用相邻的4个字节存储,存储器按字节编址。已知A00的存储地址为100。则按行存储时,元素A14的第一个字节的地址是(144);按列存储时,元素A14的第一个字节的地址是(184)。4.请在下划线上填入适当的语句,完成以下法算。StatusPreordertraverse(BitreeT,Status(*Visit)(Telemtypee)){//先序非递归遍历二叉树。Initstack(S);Push(S,T);While(!stackempty(S)){While(gettop(S,p)&&p){visit(p-data);push(S,p-lchild;}Pop(S,p);If(!stackempty(s)){pop(S,p);push(S,p-rchild);}}returnok;四.简答题(每题5分共25分)1.将图示森林转换为二叉树,并对该二叉树中序全序线索化。2.已知Hash函数为H(K)=Kmod13,散列地址为0--14,用二次探测再散列处理冲突,给出关键字(23,34,56,24,75,12,49,52,36,92,06,55)在散列地址的分布。012345678910111213143.右图为一棵3阶B树。(20,25)a.画出在该树上插入元素15后的B树。/│\b.接着,再删除元素35,画出删除后的B树。(10,14)(21)(35)4.已知某无向图的邻接表存储结构如图所示。a.请画出该图。b.根据存储结构给出其深度优先遍历序列及广度优先遍历序列。c.画出其深度优先生成树及广度优先生成树。0a24/\1b234/\2c014/\3d1/\4e012/\5.设在某通信系统中使用了八个字符,它们出现的频率分别为0.08,0.05,0.1,0.12,0.26,0.18,0.14,0.07,试构造一棵赫夫曼树,并给出赫夫曼编码。五.算法设计题(共17分)1.单链表结点的类型定义如下:typedefstructLNode{intdata;structLNode*next;}LNode,*Linklist;写一算法,将带头结点的有序单链表A和B合并成一新的有序表C。(注:不破坏A和B的原有结构.)Merge(LinklistA,LinklistB,Linklist&C)voidMerge(LinklistA,LinklistB,Linklist&C){C=(Linklist)malloc(sizeof(LNode));pa=A-next;pb=B-next;pc=C;while(pa&&pb){pc-next=(Linklist)malloc(sizeof(LNode));pc=pc-next;if(pa-data=pb-data){pc-data=pa-data;pa=pa-next;}else{pc-data=pb-data;pb=pb-next;}}if(!pa)pa=pb;while(pa){pc-next=(Linklist)malloc(sizeof(LNode));pc=pc-next;pc-data=pa-data;pa=pa-next;}pc-next=NULL;}2.二叉树用二叉链表存储表示。typedefstructBiTNode{TelemTypedata;StructBiTNode*lchild,*rchild;}BiTNode,*BiTree;编写一个复制一棵二叉树的递归算法。BiTreeCopyTree(BiTreeT){if(!T)returnNULL;if(!(newT=(BiTNode*)malloc(sizeof(BiTNode))))exit(Overflow);newT-data=T-data;newT-lchild=CopyTree(T-lchild);newT-rchild=CopyTree(T-rchild);returnnewT;
本文标题:数据结构期末考试试题及答案
链接地址:https://www.777doc.com/doc-5680558 .html