数据结构练习题 6及答案.docx
- 文档编号:24568943
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:16
- 大小:97.26KB
数据结构练习题 6及答案.docx
《数据结构练习题 6及答案.docx》由会员分享,可在线阅读,更多相关《数据结构练习题 6及答案.docx(16页珍藏版)》请在冰豆网上搜索。
数据结构练习题6及答案
更多优质自考资料尽在XX贴吧自考乐园俱乐部
(
2010年全国自考数据结构模拟试卷(四)
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项目中
只有一个是符号题目要求的,请将其代码填写的括号内.错选、多选或未选均无分。
1.在一棵具有5层的满二叉树中,结点总数为()个。
A.33
B.32
C.31
D.30
答案:
C
2.在线索化二叉树中,结点T↑没有左子树的充要条件是()
A.↑Lchild=NIL
B.↑Ltag=1
C.↑Ltag=1且T↑Lchils=NIL
D.均不对
答案:
B
3.在一个单链表中,已知q所指结点是p所指结点的直接前趋,若在p,q之间插入s结点,则执
行()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
答案:
B
4.长度为12的按关键字有序的查找表采用顺序组织方式。
若采用二分查找方法,则在等概率
情况下,查找失败时的ASL值是()
A.37/12
B.62/13
C.39/12
D.49/13
答案:
B
5.下面的程序在执行时,S语句共被执行了()次。
i=1;
while(i<=n)
{for(j=i;j {S; } i=i+1; } A.A B.B C.C D.D 答案: B 6.与数据元素本身的形式、内容、相对位置、个数无关的是数据的() A.存储结构 B.存储实现 C.逻辑结构 D.运算实现 答案: C 7.在一非空二叉树的中序遍历序列中,根结点的右边() A.只有右子树上的所有结点 B.只有右子树上的部分结点 C.只有左子树上的所有结点 D.只有左子树上的部分结点 答案: A 8.向一个栈顶指针为Top的链栈中插入一个s所指结点时,其操作步骤为() A.Top->next=s; B.s->next=Top->next;Top->next=s; C.s->next=Top;top=s; D.s->next=Top;Top=Top->next; 答案: C 9.实现任意二叉树的后序遍历的非递归算法而不使用栈结构,最佳方案是二叉树采用()存储 结构。 A.二叉链表 B.广义表 C.三叉链表 D.顺序 答案: C 10.已知一个向量的第一个元素的存储地址是100,每个元素的长度为2,则第6个元素的地址 是() A.120 B.112 C.110 D.114 答案: C 11.设二叉树有n个结点,则其深度为() A.n-1 B.n C.5log2n」+1 D.不确定 答案: D 12.在一棵二叉树中,第k层上最多有()个结点。 A.A B.B C.C D.D 答案: C 13.对含有()个结点的非空二叉树,采用任何一种遍历方式,其结点访问序列均相同。 A.0 B.1 C.2 D.不存在这样的二叉树 答案: B 14.森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,n2,n3,n4,那么当把森林 T转换成一棵二叉树后,其根结点的左孩子上有() 个结点。 A.n1-1 B.n1 C.n1+n2+n3 D.n2+n3+n4 答案: A 15. A.A B.B C.C D.D 答案: C 二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填写上正确 答案。 错填、不填均无分。 1.散列文件关键在于选择好的___和___方法。 答案: 散列函数冲突处理 2.ISAM文件采用___索引结构,而VSAM文件采用___索引结构。 答案: 静态动态 3.树有三种常用的存储结构,即孩子链表法、孩子兄弟链表法和___。 答案: 双亲表示法 4.在非空队列中,头指针始终指向___,而尾指针始终指向___。 答案: 队头元素队尾元素 5.当所有结点的权值都相等时,用这些结点构造的二叉排序树上只有___。 答案: 右子树 6.一般来说,数组中的元素具有___的数据类型,并且数组元素的下标的上界和下界都是 ___的。 答案: 统一固定 7.对带有头结点的链队列1q,判定队列中具有一个数据元素的条件是___。 答案: lq->next==rear 8.一棵树中非叶子结点的个数为n,与树对应的二叉树中右子树为空的结点的个数为m,则 m=___。 答案: n+1 9.对磁带上的顺序文件进行更新某个记录时,必须___整个文件。 而在顺序文件的最后添加 新的记录时,则不必___整个文件。 答案: 复制复制 10.设线性表L=(a1,a2,…,an)(n>2),表中元素按值的递增顺序排列。 对一个给定的值 k,分别用顺序检索和二分法检索查找与k相等的元素 ,比较次数分别为s和b,若检索不成功,则s和b的数量关系是___。 答案: s>b 三、解答题(本大题共4小题,每小题5分,共20分) 1.请根据下面所给出的邻接矩阵画出相应的有向图或者是无向图(顶点vi表示)。 答案: A,B,C对应的图分别为: 2.请画出二叉树的五种基本形态。 答案: 二叉树有五种不同的基本形态: A: 空二叉树 B: 只有一个根结点的二叉树 C: 右子树为空的二叉树 D: 左子树为空的二叉树 E: 左、右子树都非空的二叉树 3.对于下面用三元组表示的稀疏矩阵,请分别写出它们所对应的稀疏矩阵。 答案: 从三元组表还原稀疏矩阵时,首先根据表的第1行得出稀疏矩阵的行数和列数,否则,我 们无法确定所求的稀疏矩阵的维数,然后根据三元 组表所提供的行号和列号在稀疏矩阵的对应位置上写上相应的元素的值,在其他地方补零即可 ,根据上述原则,此题答案如图 (1), (2)所示。 4.已知一棵具有2个结点的二叉树的前序遍历序列和后序遍历序列是AB和BA,请 问: 这棵二叉树是惟一的吗? 如果树是不惟一的,请画出满足此条件的不同的二叉树,并简单分 析一下。 答案: 满足这个条件是二叉树并不是惟一的,因为仅知道前序遍历序列和后序遍历序列并不能惟 一地确定一棵二叉树,满足此题条件的有两棵不同 的二叉树,分别如下图所示: 这两棵二叉树的前序遍历序列都是AB,后序遍历序列是BA,但它们是两棵完全不同的二叉树。 四、算法阅读题(本大题共4小题,每小题5分,共20分) 1.以下为单链表的删除运算,分析算法,请在___处填上正确的语句。 voiddelete-lklist(lklisthead,inti) {p=find-lklist(head,i-1); if(___) {q=___; p->next=q->next; free(q); } elseerror(″不存在第i个结点″) } 答案: (p! =NULL)&&(p->next! =NULL)p->next 2.32.以下为冒泡排序的算法。 请分析算法,并在___处用适当的语句予以填充。 voidbubblesort(intn,listr)/*fiag为特征位,定义为布尔型*/ {for(i=1;i<=___,i++) {___; for(j=1;j<=___;j++) if(r[j+1].key if(flag)return; } } 答案: n-1flag-1n-i 3.以下算法实现若开散列表HP中无键值为K的结点,则插入一个这样的结点。 请分析程序,并 在___上填充合适的语句。 voidinsert-openhash(keytypeK,openhashHP) {if(research-openhash(K,HP)==NULL) {i=H(K); q=malloc(size);q->key=___;/*生成新结点*/ ___=HP[i];HP[i]=___;/*前插法链入新结点*/ } } 答案: Kq->nextq 4.以下为单链表按序号查找的运算,分析算法,请在___处填上正确的语句。 pointerfind-lklist(lklisthead,inti) {p=head;j=0; while(___) {p=p->next;j++;} if(i==j)return(p); elsereturn(NULL); } 答案: (p->next! =NULL)&&(j 五、算法设计题(本题10分) 1.有两个磁盘文件A、B,各存放一行字母,要求把这两个文件中的信息按字母顺序 排列合并,输出到一个新文件C中。 答案: 可先分别将A、B文件的内容读出放到数组C中,再对数组C排序,最后再将数组内容写到文 件C中,程序为: #include main()/*合并A、B文件内容到C文件中*/ {FILE*fp; inti,j,n,m; charc\[160\],t,ch; if((fp=fopen(″A″,″r″))==Null) {printf(″文件Acan′topen\\n″); exit(0); } else {printf(″\\n文件A的内容为\\n″) for(i=0;(ch=fgetc(fp))! =EOF: i++) {C\[i\]=ch; 更多优质自考资料尽在XX贴吧自考乐园俱乐部 ( putchar(C\[i\]); } fclose(fp); m=i; } if((fp=fopen(″B″,″r″)==Null) {printf(″B文件can′topen\\n″); exit(0); } else {printf(″\\nB文件内容是\\n″); for(i=m;(ch=fgetc(fp))! =EOF;i++) {C\[i\]=ch; putchar(\[i\]); } fclose(fp); } n=i;/*排序*/ for(i=0;i for(j=i+1;j if(C\[i\]>c\[j\]) {t=c\[i\]; c\[i\]=c\[j\]; c\[j\]=t; } printf(″\\nC文件是\\n″); fp=fopen(″c″,″w″)/*写入c文件中*/ for(i=0;i {putchar(c\[i\],fp); putchar(c\[i\]); } fclose(fp); }/*main*/ 自考乐园,自考学习交流、资料共享的好去处! 自考乐园,自考人自己的家园.... 俱乐部id: 5346389(请牢记它哦~在XX贴吧的搜索框中输入俱乐部id,可以直接进入俱乐部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构练习题 6及答案 数据结构 练习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)