华东理工大学数据结构(新)期末考试复习题及参考答案.docx
《华东理工大学数据结构(新)期末考试复习题及参考答案.docx》由会员分享,可在线阅读,更多相关《华东理工大学数据结构(新)期末考试复习题及参考答案.docx(133页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一.计算(每题参考分值5分)L一个网的邻接矩阵A如下,试画出该网。001500220000ex)001100aocoCOScoCOCO282200oo000000ex)000000aoco15oococococo/ h:带头结点的单链表的头指针 q=h; p=hnext; 初值while (p! = NULL & p-datanext;/ p指向其值min的结点,q是p的前趋while (p! = NULL & p-datanext; delete u ;/删除所有的其值min并且next=p; / del.l三、单项选择(每题参考分值2.5分)11、深度为k的完全二叉树中最少有()个结点。A
2、.2匕1一1B.2匕1答案:【B】16、假设线性表最常用的操作是存取第i个元素的值,那么采用存储方式节省时间。A. 单链表B. 双链表C. 单循环链表D. 顺序表答案:【D】17、设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n ,那么这棵 二叉中共有()个结点。A. 2nB.n + lC.2n-lD.2n + l答案:【c】18、()二叉排序树可以得到一个从小到大的有序序列。A.先序遍历中序遍历C.后序遍历D.层次遍历答案:【B】19、下面程序的时间复杂度为()for (i=l , s=0 ; i = n ; i+ ) t=l ; for(j=l ; j2)c.O(nlog2
3、n)D.O(log2n)答案:【。24、设输入序列是1、2、3 n,经过栈的作用后输出序列的第一个元素是n ,那么输出序列中第i个输出元素是()。A.n-iB.n-1-iC.n + 1-iD.不能确定答案:【C】25、设有一个二维数组4词川,假设40存放位置在644qo), 422存放位置在676(io),每个元素占一个空间,问433qo)存放在什么位置?脚注(10)表示用10进制表ZJoA.688B.678692696答案:【O26、一个队列的入队序列是1 , 2 , 3,4 ,那么队列的输出序列是1,2,3,4c.1,4,3,2D.3,2,4, 1答案:【A】27、以下四种排序中()的空间
4、复杂度最大。A. 插入排序B. 冒泡排序C. 堆排序D.归并排序答案:【D】28、假设有18个元素的有序表存放在一维数组A19中,第一个元素放Al中,现进行 二分查找,那么查找A3的比拟序列的下标依次为()1,2,39,5,2,39,5,39,4,2,3答案:【D】29、对于线性表(7,34,55,25,64,46,20,10 )进行散列存储时,假设选用H(K) = K%9作为散列函数,那么散列地址为1的元素有()个。c.21+1D.2k-l答案:【B】12、设输入序列1、2、3、n经过栈作用后,输出序列中的第一个元素是n ,那么输出 序列中的第i个输出元素是()on-in-l-iA.1234
5、答案:【D】30、设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指 针,指针变量s指向将要入队列的结点X,那么入队列的操作序列为()。A.front-next=s ; front=s ;B.s-next=rear; rear=s ;rear-next=s ; rear=s ;s-next=front; front=s ;答案:【c】z Nm个度31、设一棵m叉树中有Ni个度数为1的结点,叱个度数为2的结点, 数为m的结点,那么该树中共有()个叶子结点。A.m=1m2=1C.m2M2=2D.m1 + Z(-1)M f=2答案:【D】32、一个非空广义表的表头A.
6、一定是子表B. 一定是原子C. 不能是子表D. 可以是原子,也可以是子表答案:【B】33、单链表的存储密度A. 大于1B. 等于1C. 小于1D. 不能确定答案:【C)个叶子结点。)个叶子结点。34、设某哈夫曼树中有199个结点,那么该哈夫曼树中有( A.99B.100C.101D.102答案:【B】35、建立一个长度为n的有序单链表的时间复杂度为() A.O(n)B.0(1)C.0(M)D.O(log2n)答案:【c】36、设某有向图的邻接表中有n个表头结点和m个表结点,那么该图中有()条有向边。 A.n n-1B. mm-1答案:【。37、设一组初始记录关键字序列为(25 , 50,15
7、, 35,80,85,20,40,36,70),其 中含有5个长度为2的有序子表,那么用归并排序的方法对该记录关键字序列进行一趟归 并后的结果为()。A. 15 , 25 , 35 , 50,20,40,80 , 85 , 36,70B. 15 , 25 , 35 , 50,80,20 , 85,40,70 , 36C. 15 , 25 , 35 , 50,80,85 , 20 , 36,40,70D. 15,25 , 35 , 50,80,20,36,40,70,85答案:【A】38、设完全无向图中有n个顶点,那么该完全无向图中有()条边。A.n(n-l)/2n(n-l)n(n + l)/2
8、(n-l)/2答案:【A】39、具有n个结点的完全二叉树的深度为Plog2nJ +1Iog2n + 1c.log2nD.Flog2nJ答案:【D】40、以下算法的时间复杂度是for(i=0;in;i+) ci = i;A. 0(1)B. 0(n)c.O(log2n),D.O(nlog2n)答案:【B】41、设某棵三叉树中有40个结点,那么该三叉树的最小高度为()。A. 3B. 4C. 5D. 6答案:【B】D.不能确定答案:【c】13、设散列表中有m个存储单元,散列函数H(key)= key % p ,那么p最好选择()。A. 小于等于m的最大奇数B. 小于等于m的最大素数C. 小于等于m的最
9、大偶数D. 小于等于m的最大合数答案:【B】42、假设有18个元素的有序表存放在一维数组A19中,第一个元素放A中,现进行 二分查找,那么查找A 3 的比拟序列的下标依次为()A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,3答案:【D】43、循环队列SQ的存储空间是数组dm,队头、尾指针分别是front和rear,那么执行 入队后其尾指针值rear是A. rear=rear+lB.rear=(rear+l)%(m-l)C. rear=(rear+l)%mD.rear=(rear-l)%m答案:【c】44、设无向图G中有n个顶点,那么该无向图的最小生成树上有()条边。 A
10、.n n-1C.2nD.2n-l答案:【B】45、设一组初始记录关键字序列为(45,80 , 55,40,42,85),那么以第一个记录关键 字45为基准而得到一趟快速排序的结果是()。A. 40,42,45,55 , 80,83B. 42,40,45,80,85,88C. 42,40,45,55 , 80,85D. 42,40,45,85 , 55 , 80答案:【。46、对n个记录的文件进行快速排序,所需要的辅助存储空间大致为()0(1)0(n)0(log2n)0(n2)答案:【c47、设II页序线性表的长度为30 ,分成5块,每块6个元素,如果采用分块查找,那么其 平均查找长度为()。A
11、.B. 11C. 5D. 6.5答案:【D】48、设散列表中有m个存储单元,散列函数H(key)= key % p ,那么p最好选择()。A. 小于等于m的最大奇数B. 小于等于m的最大素数c.小于等于m的最大偶数D.小于等于m的最大合数答案:【B】49、设无向图G中有n个顶点e条边,那么其对应的邻接表中的表头结点和表结点的个数 分别为()。A. n , eB. e , nC. ,D.n , 2e答案:【D】50、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持 有序,那么该操作的时间复杂度为()。A. O(log2n)B. 0(1)C. O(n2)D. O(n)答案:
12、【D】一.辨析(每题参考分值5分)L分析以下的算法,求T(n).(用大0表示)i=l;j=O;while(i+jj) j+; else i+;正确答案:T(n)=O(n)二、计算(每题参考分值5分)2、设计判断二叉树是否为二叉排序树的算法。正确答案:解:设计判断二叉树是否为二叉排序树的算法。int minnum=-32768,flag=l;typedef struct nodeint key; struct node *lchild,*rchild;bitree;void inorder(bitree *bt)if (bt!=O) inorder(bt-lchild); if(minnum b
13、t- key)flag=0;minnum = bt-key;inorder(bt-rchild);)3、设一组有序的记录关键字序列为(13 ,18,24,35,47,50,62,83 ,90), 查找方法用二分查找,要求计算出查找关键字62时的比拟次数并计算出查找 成功时的平均查找长度。正确答案:解:2,ASL=91*l+2*2 + 3*4+4*2)=25/94、在链式存储结构上建立一棵二叉排序树。正确答案:解:在链式存储结构上建立一棵二叉排序树。#define n 10typedef struct nodeint key; struct node *lchild/*rchild;bitree
14、;void bstinsert(bitree *&bt,int key)(if (bt=O)bt=(bitree *)malloc(sizeof(bitree);bt-key=key;bt-lchild=bt-rchild=O;else if (bt-keykey) bstinsert(bt-lchild#key); else bstinsert(bt-rchild,key);)void createbsttree(bitree *&bt)(int i;for(i = l;ilength-l;i=0;i-)if(x = L-datai)break;for(j = L-length-l;j =
15、i+l;j-)L-dataj + l = L- data Q;L-datai + l=x;L-length + +;6、设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链 表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。正确答案: 解:设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链 表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。typedef char datatype;typedef struct node datatype data; struct node *next;lklist;void spl
16、it(lklist *headjklist *&hajklist *&hb,lklist *&hc)(Iklist *p; ha=0zhb=0,hc=0;for(p=head;p!=0;p=head)(head = p-next; p-next=0;if (p-data = A & p-datanext=ha; ha=p;else if (p-data = 0 & p-datanext=hb; hb=p; elsep-next=hc; hc=p;)7、设计在单链表中删除值相同的多余结点的算法正确答案:解:设计在单链表中删除值相同的多余结点的算法。typedef int datatype;typ
17、edef struct node datatype data; struct node *next;lklist;void delredundant(lklist *&head)(Iklist *p/q/s;for(p=head;p!=0;p=p-next)(for(q = p-nextzs=q;q!=0;)if (q-data= = p-data) s-next=q-next; free(q);q=s-next; else s=qzq=q-next;)8、一棵二叉树的中序序列和后序序列分别如下,请画出该二叉树。中序序列:DIGJLKBAECHF后序序列:ILKJGDBEHFCA正确答案:解:
18、9、设计计算二叉树中所有结点值之和的算法。正确答案:解:设计计算二叉树中所有结点值之和的算法。void sum(bitree *bt,int &s)(if(bt!=O) s=s+bt-data; sum(bt-lchild/s); sum(bt-rchild/s);10、设计在链式结构上实现简单项选择择排序算法。正确答案:解:设计在链式结构上实现简单项选择择排序算法。void simpleselectsorlklist(lklist *&head)(Iklist *p,*q,*s; int min,t;if(head=0 |head-next=O) return;for(q = head; q
19、!=0;q=q-next)(min=q-data; s=q;for(p=q-next; p!=0;p=p-next) if(minp-data)min = p-data; s=p; if(s!=q)t=s-data; s-data=q-data; q-data=t;)一、计算(每题参考分值5分)1、以 45,53,12,37,24,100361,90,78 )构造二叉排序树。正确答案:2、以14468,27;55,23,11,10,19,20,79,84,构造 hash 表并求平均直找长度。hash 表长度为 17, hash(key) = key % 17o用线性探测法解决冲突。正确答案:0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华东理工大学 数据结构 期末考试 复习题 参考答案
限制150内