《数据结构》期末考试试卷试题及答案2套.docx
《《数据结构》期末考试试卷试题及答案2套.docx》由会员分享,可在线阅读,更多相关《《数据结构》期末考试试卷试题及答案2套.docx(15页珍藏版)》请在咨信网上搜索。
《数据结构》期末考试试卷试题及答案 一、简答题(每题5分,共20分) 1、一棵有n个结点的k叉树采用k叉链表存储,空链域的总数目是多少?写出求解过程。 2、在图的遍历中,设置访问标志数组的作用是什么? 3、折半查找的前提条件是什么? 4、分析冒泡排序的最好性能和最坏性能(性能即关键字比较次数和移动元素的次数)。 二、单项选择题(每题1分,共10分) 1、栈和队列的共同特点是( )。 A)只允许在端点处插入和删除元素 B)都是先进后出 C)都是先进先出 D)没有共同点 2、 100个结点的完全二叉树采用顺序存储,从1开始按层次编号,则编号最小的叶子结点的编号应该是( )。 A) 100 B) 49 C) 50 D) 51 3、在顺序存储的线性表上R[3]上,从前向后进行顺序查找。若查找第一个元素的概率是1/2,查找第二个元素的概率是1/3,查找第三个元素的概率是1/6。则查找成功的平均查找长度为( )。 A)7/3 B)2 C)3 D)5/3 4、在一个有n个顶点的有向图中,若所有顶点的出度之和为s,则所有顶点的入度之和为( ) A) n-s B) n C) s D) s-1 5、设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是( )。 A) N0=N1+1 B) N0=Nl+N2 C) N0=N2+1 D) N0=2N1+l 6、设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。 A)5 B)6 C)7 D)8 7、已知单链表中的指针p所指的结点不是链尾结点,若在p结点后插入s结点,应执行( )。 A)s->next=p ; p->next=s ; B) p->next=s ;s->next=p ; C)s->next=p->next ; p=s ; D) s->next=p->next ;p->next=s ; 8、设用邻接矩阵A表示有向图G的存储结构,则有向图G中顶点i的入度为( )。 A) 第i行非0元素的个数之和 B) 第i列非0元素的个数之和 C) 第i行0元素的个数之和 D) 第i列0元素的个数之和 9、排序时扫描待排序记录序列,顺次比较相邻的两个元素的大小,逆序时就交换位置。这是( )排序方法的基本思想。 A)堆排序 B)直接插入排序 C)快速排序 D)冒泡排序 10、设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( )方法可以达到此目的。 A)快速排序 B)堆排序 C)归并排序 D)基数排序 三、填空题(每空2分,共20分) 1、下面算法的时间复杂度是 。 i=1; while(i<=n) i=i*2; 2、设线索二叉树中,判断p所指向的结点为叶子结点的条件是____________________________________。 2、对任意一棵有n个结点的树,这n个结点的度之和为 。 3、Prim算法适合求解 连通网的最小生成树。(填稀疏或稠密) 4、关键路径是从源点到汇点的 路径。 5、深度为k的二叉树中最少有 个结点,最多有 个结点。 6、设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________ 7、根据初始关键字序列(25,22,11,38,10)建立的二叉排序树的高度为_________。 8、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下: 20,15,21,25,47,27,68,35,84 15,20,21,25,35,27,47,68,84 15,20,21,25,27,35,47,68,84 则所采用的排序方法是 。 四、构造题(共30分) 1、(8分) 设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求: ①用孩子兄弟表示法(二叉链表)表示出该树的存储结构;(2分) ②将该树转化成对应的二叉树。(2分) ③写出该树的先序和后序遍历序列。(4分) 2、(8分)某图的邻接表存储结构为图1所示: ① 画出从V1出发的深度优先生成树; ② 给出该图的邻接矩阵存储结构。 图1 第四题 第2小题图 3、(8分)一个线性序列(36,13,40,63,22,6),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~9]中,采用线性探测再散列解决冲突。构造哈希表,并计算等概率情况下的查找成功和不成功的平均查找长度。 4、(6分)欲对关键字{36,15,13,40,63,22,6}从小到大排序,若采用堆排序,写出将关键字序列建初堆过程。 五、算法设计题(每小题10分,共20分) 注:只要求给出描述算法的子函数,不需要编写完整的实现程序。 1、 编写折半查找算法。(递归、非递归均可) 2、已知二叉树采用二叉链表存放,该结点结构为: LChild data RChild level 编写算法,将二叉树中每个结点所在的层次值置入相应的level域。 《数据结构》期末考试 试卷2参考答案 一、简答题 1、n个结点的k叉树采用k叉链表存储,链域总数为k*n,又:n=B+1,B为分支总数即非空链域总数,B=n-1,所以空链域总数为:(k-1)*n+1。 2、访问标志数组的作用是:保证图中的每个顶点都被访问到,且仅访问一次。 3、折半查找的前提条件是1)列表元素顺序存储;2)列表元素按关键字有序存储; 4、冒泡排序最好情况:移动元素次数为0,关键字比较次数为:n-1次; 冒泡排序最坏情况:移动元素次数为3n*(n-1)/2,关键字比较次数为n*(n-1)/2。 二、选择题 1.A 2.D 3.D 4.C 5.C 6. A 7.D 8.B 9.D 10.B 三、填空题 1、O(log2n) 2、p->ltag= =1&&p->rtag= =1 3、n-1 4、稠密 5、最少k,最多 2k-1 6、1,4,2,3 7、高度为4 8、快速排序 四、构造题 1.1) 该树的孩子兄弟表示法为:(2分) 2)转化的二叉树为:(2分) 3)先序遍历序列为:ABECFGD(2分)后序遍历序列为:EBFGCDA(2分) 2. 1)此为有向图的邻接表表示法,该图为: 2)深度优先搜索得到的遍历序列为:V1,V4,V5,V6,V2,V7,V3; 深度优先生成树为: 3)其邻接矩阵表示法为: 顶点数组: 邻接矩阵: 1 V1 2 V2 3 V3 4 V4 5 V5 6 V6 7 V7 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 3、1)构造的哈希表为:(4分) 地址 0 1 2 3 4 5 6 7 8 9 元素 63 36 22 40 13 6 比较次数 1 1 2 1 1 2 2) (2分)查找成功时的ASL=(1+1+2+1+1+2)/6=8/6 or4/3 (2分)查找不成功时的ASL=(4+3+2+1+1+4+3)/7=18/7 4、据题意,欲得到递增有序,需要建大根堆(1分)。建初堆过程如下: 五.算法设计题 1、折半查找算法: 1)非递归算法: int BinSearch (RecordList L,KeyType k) {low=1;high=L.length; while(low<=high) {mid=(low+high)/2; if(L->r[mid].key= =k) return mid; else if(k< L->r[mid].key) high=mid-1; else low=mid+1;} return 0; } 2)递归算法 int BinSearch (RecordList L,KeyType k,int low,int high)//首次调用,low=1,high=L.length; { if(low<=high) { mid=(low+high)/2; if(L->r[mid].key= =k) return mid; else if(k< L->r[mid].key) return(BinSearch (L, k,low,mid-1)); else return(BinSearch (L, k,mid+1,high)); } } 2、二叉树中每个结点的level域置值算法:利用二叉树的先序遍历给每个结点的level域置值。 void SetLevel(BiTree bt,int layer) //首次调用时,bt参数为二叉树的根指针,layer参数值为1。 { if(bt) {bt->level=layer; SetLevel(bt->lchild,layer+1); SetLevel(bt-)rchild,layer+1);} } 注:此题也可以借助层次遍历完成。 《数据结构》期末考试试卷及答案 一、简答题(每题5分,共20分) 1、具有n个结点的k叉树,若采用k叉链表存储,则空链域有多少个?(要求写出求解步骤)。 2、分析二叉排序树的性能(最好、最坏和平均查找性能)。 3、希尔排序基本思想。 4、图遍历中,设置访问标志数组visited[]的作用。 二、单项选择题(每题1分,共10分) 1、 在一棵平衡二叉排序树中,每个结点的平衡因子的取值范围是( ) A) -1~1 B) -2~2 C) 1~2 D) 0~1 2、 在单链表中,下列说法正确的是() A) 单链表中头结点是必不可少的; B) 单链表中头指针是必不可少的; C) 在单链表中可以实现随机存取; D) 单链表的存储密度小于顺序表 3、假设以数组A[M]存放循环队列的元素,其头尾指示器分别为front和rear,则当前队列中的元素个数为( )。 A) rear-front+1 B) (rear-front+1)%M C) (front-rear +M)%M D) (rear-front+M)%M 4、已知广义表L=((a,b,c),(d,e,f)),运用下列( )运算可以得到结果:e。 A) head(tail(L)) B) tail(head(L)) C) head(tail(head(tail(L)))) D) head(tail(tail(head(L)))) 5、 线索二叉树中,某结点p是叶子结点,下列( )表达式的值为真。 A) p->lchild= =NULL B) p->ltag= =1&&p->rtag= =1 C) p->ltag= =0 D) p->lchild= =NULL&& p->rchild= =NULL 6、一个具有567个结点的完全二叉树的高度为( ) A) 9 B) 10 C) 11 D) 12 7、具有n个顶点的强连通图,至少有( )条边 A) n-1 B) n C) n(n-1) D) n(n-1)/2 8、在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为() A) e B) 2e C) n2-e D)n2-2e 9、对关键字序列(20,15,14,18,36,40,10,21) 进行快速排序,以第一个关键字为基准得到的一趟划分后的结果是( )。 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) 10、下列四种排序方法中,不稳定的方法是( )。 A) 冒泡排序 B) 直接插入排序 C) 归并排序 D) 快速排序 三、填空题(每空2分,共20分) 1、一个算法中,基本操作的语句频度为(n3+n2log2n+14n)/n2,该算法的时间复杂度为 ( ) 2、 65个结点的完全二叉树,按层次,从左到右编号,则最后一个非叶子结点的编号为( )。 3、折半查找的两个前提条件分别是( )和( ) 4、一个有序表为{ 4,8,12,16,20,24,28},采用折半查找法查找值为24时需要比较( )次。 5、有向图的邻接表表示法中,第i条链上边表结点的个数为该顶点的( )。 6、已知一个带头结点的链栈,其头指针为top;指针s指向一个新结点,要将结点s进栈,则进栈的语句应为:( )和( )。 7、有一种排序算法,其时间复杂度为O(n2),关键字比较次数与待排序记录的初始排列顺序无关且排序不稳定,则该排序算法是( ) 8、对二叉排序树进行中序遍历,会得到一个( )序列。 四、构造题(每题6分,共30分) 1、假定用于通信的某电文仅由8个字母构成,各字母在电文中出现的频率分别为(12,5,3,7,14,21,9,15)。请完成: 1)构造哈夫曼树;2)为这8个字母设计不等长的Huffman编码,并计算WPL。 2、已知一个图的顶点为A、B、C、D,其邻接矩阵的下三角元素全为0(包括主对角线元素),其他元素均为1。请画出该图,并给出其邻接表。 3、用普利姆算法从顶点A出发,构造图1所示连通网的最小生成树(写出过程)。 图1 4、一个线性序列{38,25,74,63,52,48},假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~9]中,采用线性探测再散列解决冲突。构造哈希表,并计算等概率情况下的查找成功和不成功的平均查找长度。 5、对序列{57,40,38,11,13,34,48,75,6,19,9,7},采用堆排序算法进行递减排序,请构造相应的初始堆即建初堆(只写初堆结果即可)。 五、算法设计题(每题10分共20分) 注:算法设计题只要求给出描述算法的子函数,不需要编写完整的实现程序。 1、在一个带头结点的循环链队列中只有尾指针rear,请给出这种队列的入队和出队操作的实现过程。队列的定义如下: typedef struct Node { QueueElementType data; /*数据域*/ struct Node *next; /*指针域*/ }LinkQueueNode,*LinkQueue; 2、假设二叉树上的结点值各不相同,设计一个在二叉树中求值为e的结点的双亲结点。函数名已给出,如下: /*若e有双亲,则返回双亲结点指针; 若e是根结点或二叉树中无e结点,则返回NULL*/ BiTNode* Parent(BiTree bt,ElemType e) 《数据结构》期末考试 试卷1参考答案 一、简答题(5分*4=20分) 1、n个结点的k叉树,共nk个链域;分支树为n-1个,即n-1个非链域,则空链域有nk-n+1个 2、当二叉排序树的左右子树比较均衡时,查找性能最好,此时时间复杂度为O(nlogn);当二叉排序树每个结点为单分支时,查找性能最差,与顺序查找类似,此时时间复杂度为O(n2)。但二叉排序的平均查找时间复杂度为O(nlogn)。 3、按某个间隔,将待排序记录序列分割成若干个子序列,分别进行直接插入排序;继续缩小间隔,对每个子序列进行直接插入排序;最后再对全部记录进行一次直接插入排序。 4、防止重复访问;防止遗漏访问。 二、选择题(1分*10=10分) (1~5) A D D C B (6~10) B B D B D 三、填空题(2分*10=20分) 1、O(n) 或O(n+logn) 2、32 3、元素有序 顺序存储 4、2 5、出度 6、s->next=top->next; top->next=s; 7、简单选择排序 8、递增 或非递减 或从小到大 四、构造题(6分*6=30分) 1、 WPL=21*2+(14+15+9+12+7)*3+(5+3)*4=245 (该哈夫曼树有多种形态) 2、 3、 4、构造的哈希表为: 0 1 2 3 4 5 6 7 8 9 63 38 25 74 52 48 ① ① ① ② ④ ② ASLsucc=(1+1+1+2+2+4)/6= 11/6 ASLuncuss=(2+1+1+6=5+4+3)/7= 22/7 5、 五、算法题(10分*2=20分) 1、int EnterQueue(LinkQueue rear,ElemType x) //进队 { LinkQueueNode *newNode; newNode=(LinkQueue)malloc(sizeof(LinkQueueNode)); if(!newNode) return false; newNode->data=x; newNode->next=rear->next; rear->next=newNode; rear=newNode; return true; } int DeleteQueue(LinkQueue rear,ElemType *x) //出队 { if(rear->next==rear) return false; p=rear->next->next; rear->next->next=p->next; *x=p->data; free(p); return true; } BiTNode* Parent(BiTree bt,ElemType e) //找e结点的双亲 { BiTNode *p=NULL; if(bt==NULL) return NULL; if(bt->LChild->data==e || bt->RChild->data==e) //访问根 return bt; p=Parent(bt->LChild,e); //在左子树上找 if(!p) p=parent(bt->RChild,e) //在右子树上找 return p; }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 期末考试 试卷 试题 答案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文