数据结构与算法(软件)课程样卷2.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
样卷二 一.选择题 1.组成数据的基本单位是( ) A.数据项 B.数据类型 C.数据元素 D .数据变量 2.线性表的链式存储实现有利于( )运算。 A .插入 B .读表元 C .查找 D .定位 3.二叉树第 i(i ≥ 1) 层最多有( )个结点。 A . 2i B .2i C . 2i-1 D .2i -1 4.设单链表中指针 p 指向结点 A,若删除 A 后的结点存在,则需要修改指 针的操作为( )。 A.p->next=p->next->next B .p=p->next C.p=p->next->next D .p->next=p 5.设一数列的输入顺序为 1,2,3,4,5,6 ,通过栈操作不可能排成的输出序 列为( )。 A.3,2,5,6,4,1 B .1,5,4,6,2,3 C.2,4,3,5,1,6 D .4,5,3,6,2,1 6.如果结点 A 有 3 个兄弟,而且 B 为 A 的双亲,则 B 是度为( ) A. 3 B. 4 C.5 D . 1 7.设循环队列 Q[0..N-1] 的头尾指针为 F.R,当插入元素时尾指针 R 加 1, 头指针 F 总是指向队列中第一个元素的前一个位置, 则队列中元素计数为 ( )。 A .R-F B . N-(R-F) C . (R-F+N)%N D .(F-R+N)%N 8.若给定的关键字集合为 {20,15,14,18,21,36,40,10} ,一趟快速排序结束 后,键值的排序为( )。 A . 10,15,14,18,20,36,40,21 B . 10,15,14,18,20,40,36,21 C . 10,15,14,20,18,40,36,21 D . 15,10,14,18,20,36,40,21 9.设有 100 个元素,用二分法查找时,最大比较次数是( ),最小比较次 数是( )。 A.25 B .7 C.10 D .1 10.具有 2000 个结点的二叉树,其高度至少为( )。 A.9 B .10 C.11 D .12 1 二.填空题 1.前序序列和中序序列相同的二叉树为 。 2.具有 64 个结点的完全二叉树的深度为 。 3.数据结构讲述的三大关系是 、 、 。 4.已知二叉树中的叶子树为 50,仅有一个孩子的结点数为 30,则总结点数 为 。 5.简单选择排序在最好情况下所做的交换元素次数为 。 6.队列的原则是 。 7.快速排序算法在最差的情况下其时间复杂度是 。 8.顺序存储的队列如果不采用循环方式,则会出现 问题。 三.简答题 1. 试比较顺序存储和链式存储的优缺点。 2. 简述栈和队列这两种数据结构的相同点和不同点。 3. 已知一棵二叉树的中序序列和后序序列分别是 BDCEAFHG和 DECBHGFA,试画 出这棵二叉树。 4. 采用简单选择排序对线性表( 26,15,12,16,5,30 )进行排序,进行交换的第一对元素是哪两个元素?在什么情况下,第一趟不需要进行元素的交换? 四.判断题 1.如果某数据结构的每一个元素都最多只有一个直接前驱和一个直接后继, 则该数据结构必为线性表。 ( ) 2.若有一个叶子结点是某子树的中序遍历的最后一个结点,则它必是该子树的 先序遍历的最后一个结点。 ( ) 3.进栈操作时,必须判断栈是否已满。 ( ) 4.如果某排序算法是稳定的,那么该方法一定具有实际应用价值。 ( ) 5.折半查找法的前提之一是线性表有序。 ( ) 五.程序填空题 1.以下是采用冒泡排序法对数组 a 进行排序,完成程序。 bsort(int a[], int n) { int n, int i,int j, int temp; for (i= ;j<n-1;++i) { for (j=n-2;j>=i;--j) { if( ) { temp=a[j];a[j]=a[j+1];a[j+1]=temp; } } } 2 } 2.在单链表(表头指针为 head)的元素中找出最后一个值为 e 的元素,返 回其指针;如果找不到,返回 NULL。完成以下程序。 typedef srruct LinkNode { int data; struct LinkNode *next; } Node; Node *search_link(Node *head, int e) { Node *p, *q; q= ; for(p=head; ;p=p->next) { if(p->data = = e) { ; } } return q; } 3.下列算法是输出一棵二叉树的第 i 层的所有结点的值。假定根结点是第 层,完成以下程序。 typedef srruct LinkNode { int data; struc

文档评论(0)

150****0902 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档