数据结构网上教学活动文本(2006511)_第1页
数据结构网上教学活动文本(2006511)_第2页
数据结构网上教学活动文本(2006511)_第3页
数据结构网上教学活动文本(2006511)_第4页
数据结构网上教学活动文本(2006511)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构网上教学活动文本(2006.5.11)徐孝凯:欢迎大家积极参加计算机科学与技术专业数据结构课程网络答疑活动 贺桂英:徐老师,能否请您将刚考过的试题(06年1月已考)上传给我们,供学习和复习参考! 谢谢您! 徐孝凯:上学期试卷供参考! 中央广播电视大学计算机科学与技术专业数据结构试题(6)2004年9月题 号一二三四五六总 分得 分 一、单项选择题,在括号内填写所选择的标号(9小题,每小题2分,共18分) 1. 一种抽象数据类型包括数据和( )两个部分。 A. 数据类型 B. 操作 C. 数据抽象 D. 类型说明 2. 在一个长度为n的顺序表的表尾插入一个新元素的时间复杂度为( )。 A

2、. O(1) B. O(n) C. O(n2) D. O(log2n) 3. 已知L是带表头附加结点的单链表, 删除第一个结点的语句是( )。 A. L = L->link; B. L->link = L->link->link; C. L = L; D. L->link = L; 4. 下列广义表中的线性表是( )。 AE(a,(b,c)BE(a,E)CE(a,b)DE(a,( ) 5. 在一棵树的左子女-右兄弟表示法中,一个结点的右子女是该结点的( )结点。 A. 兄弟 B. 父子 C. 祖先 D. 子孙 6. 向一棵AVL树插入元素时,可能引起对最小不平衡子

3、树的双向旋转的调整过程,此时需要修改相关( )个指针域的值。 A. 2 B. 3 C. 4 D. 5 7. 在一个有向图的邻接矩阵表示中,删除一条边<vi,vj>需要的时间复杂度为 ( )。 AO(1) BO(i) CO(j) DO(i+j) 8. 在一棵高度为h的B树中,插入一个新关键码时,为搜索插入位置需读取( )个结点。 A. h-1 B. h C. h+1 D. h+2 9. 对存储有n个元素的长度为m的散列表进行搜索,平均搜索长度与( )有关。 A. n B. m C. n/m D. n*m 二、填空题,在横线处填写合适内容(12小题,每小题1分,共12分) 1. 抽象数

4、据类型的特点是_、信息隐蔽、使用与实现分离。 2. 利用三元组表存放稀疏矩阵中的非零元素,则在三元组表中每个三元组元素对应一个非零元素的行号、列号和_。 3. 在单链表中逻辑上相邻的结点而在物理位置上_相邻。 4. 向一个链式栈插入一个新结点时,首先把栈顶指针的值赋给新结点的指针域,然后把新结点的存储位置赋给_。 5. 迷宫问题是一个回溯控制的问题,最好使用_的方法来解决。 6. 在一棵高度为3的四叉树中,最多含有_个结点,假定树根结点的高度为0。 7. 在一个堆的顺序存储中,若一个元素的下标为i(0in-1),则它的右子女元素的下标为_。 8. 根据一组记录(56,42,73,50,48,2

5、2)依次插入结点生成一棵AVL树时,当插入到值为_的结点时才出现不平衡,需要进行旋转调整。 9. 在使用Kruskal算法构造连通网络的最小生成树时,只有当一条候选边的两个端点不在同一个_ 上,才会被加入到生成树中。 10. 在堆排序中,对n个记录建立初始堆需要调用_次调整算法。 11. 在对n个数据对象的二路归并排序中,每趟归并的时间复杂度为_。 12. 在一棵m阶B树上,每个非根结点的关键码数最少为_个。 三、判断题,在每小题前面打对号表示正确或打叉号表示错误(10小题,每小题1分,共10分) 1. 多维数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。 2. 若每次从

6、队列中取出的是具有最高优先权的元素, 则称这种队列为优先级队列。 3. 递归定义的数据结构通常不需要用递归的算法来实现对它的操作。 4. 当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。 5. 对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(n)。 6. 对于同一组记录,生成二叉搜索树的形态与插入记录的次序无关。 7. 在每个AOE网络中只有一条关键路径。 8. 图的深度优先搜索是一种典型的回溯搜索的例子,可以通过递归算法求解。 9. 装载因子是散列表的一个重要参数,它反映了散列表的装满程度。 1

7、0. 在一棵B树中,所有叶结点都处在同一层上,所有叶结点中空指针数等于所有关键码的总数加1。 四、运算题(5小题,每小题6分,共30分) 1. 假定一棵二叉树广义表表示为a(b(c),d(e,f),分别写出对它进行中序、后序、按层遍历的结果。 中序: 后序: 按层: 2. 一个一维数组a10中存储着有序表(15,26,34,39,45,56,58,63,74,76),根据折半搜索所对应的判定树,写出该判定树中度为1的结点个数,并求出在等概率情况下进行成功搜索时的平均搜索长度。 度为1的结点个数: 平均搜索长度: 3. 假定一个线性序列为(38,42,55,15,23,44,30,74,48,2

8、6),根据此线性序列中元素的排列次序生成一棵二叉搜索树,求出该二叉搜索树中左子树为空的所有单支结点、右子树为空的所有单支结点和所有叶子结点,请按照结点值从小到大的次序写出。 左子树为空的所有单支结点: 右子树为空的所有单支结点: 所有叶子结点: 4. 已知一个图的顶点集V和边集G分别为: V=1,2,3,4,5,6; E=<1,2>,<1,3>,<2,4>,<2,5>,<3,4>,<4,5>,<4,6>,<5,1>,<5,3>,<6,5> 假定该图采用邻接表表示,每个顶点邻接

9、表中的边结点都是按照终点序号(即数值域的值)从小到大的次序链接的,试写出: (1) 从顶点1出发进行深度优先搜索所得到的顶点序列; (2) 从顶点1出发进行广度优先搜索所得到的顶点序列。 (1): (2): 5. 已知一个数据序列为6,45,27,23,41,5,56,64,把它调整为最大堆并给出进行两趟交换和堆排序后的结果(即尾部得到2个最大数)。 最大堆: 两趟排序后结果: 五、算法分析题(3小题,每小题6分,共18分) 1. 该算法功能为:从表头指针为la的、按值从小到大排列的有序链表中删除所有值相同的多余元素,并释放被删结点的动态存储空间。阅读算法,按标号填写空缺的内容,要求统一填写在

10、算法后面的标记处。 void purge_linkst(ListNode *& la) ListNode *p,*q; if(la=NULL) return; q=la; p=la->link; while (p) if(_(1)_) q=p; p=p->link; else q->link= _(2)_; delete(p); p=_(3)_; (1) (2) (3) 2. 请写出下面算法的功能,其中Stack表示栈类,Queue表示队列类。 void unknown(Queue &Q) Stack S; int d; S.InitStack( ); whi

11、le(!Q.IsEmpty( ) Q.DeQueue(d); /出队列元素值由变量d带回 S.Push(d); while(!S.IsEmpty( ) S.Pop(d); /出栈元素值由变量d带回 Q.EnQueue(d); 算法功能: 3. 已知二叉树中的结点类型BinTreeNode定义为: struct BinTreeNode ElemType data;BinTreeNode *left, *right; 其中data为结点值域,left和right分别为指向左、右子女结点的指针域。下面函数的功能是从二叉树BT中查找值为X的结点,若查找成功则返回结点地址,否则返回空。按标号填写空缺的内

12、容,要求统一填写在算法后面的标记处。 BinTreeNode* BTF(BinTreeNode* BT, ElemType x) if(BT=NULL) _(1)_; else if(BT->data=x) _(2)_; else BinTreeNode* t; if(t=BTF(BT->left, x) return t; _(3)_; return NULL; (1) (2) (3) 六、算法设计题(2小题,每小题6分,共12分) 1.在一个带表头附加结点的单链表L中,假定所有结点的值按递增顺序排列,试编写一个while循环补充下面函数,功能是删除表L中所有其值大于等于min,

13、同时小于等于max的结点。 void rangeDelete(ListNode*& L, ElemType min, ElemType max) ListNode *q=L, *p=L->link; /添加的while循环位置 /请把while循环内容写在此行下面 2. 已知二叉搜索树中的结点类型BinTreeNode定义为: struct BinTreeNode ElemType data; BinTreeNode *left, *right; 其中data为结点值域,left和right分别为指向左、右子女结点的指针域。参数BST指向一棵二叉搜索树的根结点。试根据下面的函数声

14、明编写一个非递归算法,从BST树中搜索出具有item参数值的结点,若搜索成功则返回该结点的地址,否则返回NULL。 BinTreeNode* Find(BinTreeNode* BST, const ElemType& item); /请把函数定义写在此行下面中央广播电视大学计算机科学与技术专业数据结构试题(6)参考解答及评分标准2004年9月 一、单项选择题,在括号内填写所选择的标号(9小题,每小题2分,共18分) 1. B 2. A 3. B 4. C 5. A 6. D 7. A 8. B 9. C 二、填空题,在横线处填写合适内容(12小题,每小题1分,共12分) 1. 数据封

15、装 2. 值 3. 不一定 4. 栈顶指针 5. 递归 6. 85 7. 2i+2 8. 48 9. 连通分量 10. n/2 11. O(n) 12. ém/2ù-1 三、判断题,在每小题前面打对号表示正确或打叉号表示错误(10小题,每小题1分,共10分) 1. 对 2. 对 3. 错 4. 对 5. 对 6. 错 7. 错 8. 对 9. 对 10. 对 四、运算题(5小题,每小题6分,共30分) 1. 中序:c,b,a,e,d,f /2分 后序:c,b,e,f,d,a /2分 按层:a,b,d,c,e,f /2分 2. 度为1的结点个数:3 /3分 平均搜索长度:29

16、/10 /3分 3. 左子树为空的所有单支结点:15,23,42,44 /2分 右子树为空的所有单支结点:30 /2分 所有叶子结点:26,48,74 /2分 4. (1) 1,2,4,5,3,6 /3分 (2) 1,2,3,4,5,6 /3分 5. 最大堆: 64,45,56,23,41,5,27,6 /3分 两趟排序结果:45,41,27,23,6,5,56,64 /3分 五、算法分析题(3小题,每小题6分,共18分) 1. (1) p->data>q->data(或p->data!=q->data) /2分 (2) p->link /2分 (3) q-

17、>link /2分 2. 利用"栈"作为辅助数据结构,将队列Q中的元素逆置(即按相反次序放置)。 3. (1) NULL /2分 (2) return BT /2分 (3) if(t=BTF(BT->right, x) return t /2分 六、算法设计题(2小题,每小题6分,共12分) 评分标准:根据编写正确程度酌情给分。 1. while(p!=NULL) if(p->data>=min && p->data<=max) q->link=p->link; delete p; p=q->link; else q=p; p=p->link; 2. BinTreeNode* Find(BinTreeNode* BST, const ElemType& item) while(BST!=NULL) if(item=BST->data

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论