版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、选择题1、所谓算法是指【 B 】。A、计算机程序B、求解特定问题的计算方法C、欧几里德算法D、求解特定问题的指令的有限序列2、在一个单链表中,若p所指结点不是表尾结点,在p之后插入s所指结点,则执行【 B 】。A、s->next = p; p->next = s;B、s->next = p->next; p->next = s;C、s->next = p->next; p = s;C、p->next = s; s->next = p;3、若已知一个栈的入栈序列是1,2,3,¼,n,其输出序列为P1,P2,P3, ¼,
2、Pn,若P1=n,则Pi为【 C 】。A、iB、n=iC、n-i+1D、不确定4、不带头结点的单链表head为空的判定条件是【 A 】。A、head=NULLB、head->next=NULLC、head->next=head D、head!=NULL5、若用一个大小为 6 的数组来实现循环队列,且当前 rear 和 front 的值分别为 0 和 3。当从队列中删除一个元素,再加入两个元素后,rear和 front 的值分别为【 B 】。A、1和5 B、2和4 C、4和2 D、5和16、一棵有124个叶子结点的完全二叉树,最多有【 A 】结点。A、247B、124C、248D、1
3、257、按照二叉树的定义,具有3个结点的二叉树有【 C 】种。A、3B、4C、5D、68、在一个有向图中,所有顶点的入度之和是所有顶点的出度之和的【 B 】倍。A、1/2B、1C、2D、49、对线性表进行二分查找时,要求线性表必须【 C 】。A、以顺序方式存储B、以链式方式存储C、以顺序方式存储,且结点关键字有序排列。D、以链式方式存储,且结点关键字有序排列。10、若一颗二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足【 B 】。A、所有结点均无孩子B、所有结点均无右孩子C、只有一个叶子结点D、是一颗满二叉树11、一个有n个结点的图,最多有【 D 】个连通分量。A、0B、1C、n
4、-1D、n12、一棵树有n个结点,在该树的二叉链表存储表示中,空链域(即空指针域)的个数为【 C 】。A、n-1B、2n-1C、n+1D、2n+113、下列排序算法中,【 A 】排序算法不能保证在每趟排序中将一个元素放到其最终位置上。A、直接排序B、冒泡排序C、简单排序D、快速排序14、在一颗度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则其叶子结点个数为【 C 】。A、4B、5C、6D、715、在一个包含n个顶点e条边的有向图的邻接矩阵中,零元素的个数为【 C 】。A、eB、2eC、n2-eD、n2-2e16、一个栈的入栈序列是1,2,3,4,则栈不可能输出的序列是【 C 】。A
5、、4321B、1432C、4312D、123417、为了将遍历结果还原为惟一的二叉树,应当知道的遍历条件是【 D 】。 A)先序遍历和后序遍历 B)先序遍历和层次遍历 C)中序遍历和层次遍历 D)中序遍历和后序遍历18、二叉排序树是【 B】。A、每一分支结点的度均为2的二叉树B、中序遍历得到一升序序列的二叉树C、按从左到右顺序编号的二叉树D、每一分支结点的值均小于左子树上所有结点的值,又大于右子树上所有结点的值19、在有向图的邻接表存储结构中,顶点v的下标在链表中出现的次数是【 B 】。A)顶点v的度B)顶点v的出度C)顶点v的入度D)依附于顶点v的边数20、一个有n个顶点的有向图最多有【B】
6、条边。A、nB、n(n-1)C、2nD、n(n-1)/2二、判断对错【 x 】1、顺序存储方式结构只能用于线性结构,不能用于非线性结构【 x 】2、算法的优劣与描述算法的语言有关。【 Ö 】3、在线性链表中,只能顺序存取元素,不能直接存取元素。【 Ö 】4、二叉树就是度小于等于2的有序树。【 x 】5、若一个结点是某二叉树子树的前序遍历序列的最后一个结点,则它也必是该子树的中序遍历序列的最后一个结点。【 x 】6、对于一棵含有n个结点的树,将其结点按从上到下且从左至右按1至n进行编号,则对其任意一个编号为i的结点,如果它有左孩子,则其左孩子结点的编号为2i。【 Ö
7、 】7、在完全二叉树中,若一个结点没有左孩子,则它必是叶子结点。【 Ö 】8、具有n个顶点的强连通图至少有n条弧。【 x 】9、由树转换得到的二叉树,其根结点没有左子树。【 Ö 】10、在二叉排序树中,最大值结点和最小值结点一定是叶子结点。三、 填空题1、向量的第一个元素的存储地址是200,每个元素的长度是3,那么第6个元素的存储地址是 。答案:2153、在一个带头结点的单链表中,p所指结点既不是首元结点,也不是尾元结点,删除p结点的直接后继结点的语句序列是 、 。答案:q=p->next, p->next=p->next->next, free(q
8、)4、从堆栈中删除一个数据元素,即出栈的操作过程是 、 。答案:栈顶指针减1,取出数据元素5、从循环队列删除数据元素时,需要判满队列是否已经空了,判断条件是: 。 答案:rear = front7、链队列实际上是一个同时带有头指针和尾指针的单链表(1n),则队尾指针指向该链表的第 个元素。答案:n 8、在有n个叶子结点的哈夫曼树中,总的结点个数是 。答案:2n1 9、已知完全二叉树的第7层有8个结点,则该二叉树的叶子结点个数为 。答案:3610、将一棵完全有100个结点的二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为 。答案:98
9、11、已知某二叉树的中序序列和后序序列分别为47215836、74285631,则它的前序序列为 。答案:1247358613、对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为 ,邻接表中所有结点的总数是 。答案:n,2e14、在有序表A120中,采用折半查找算法查找元素值等于A12的元素,所比较过的元素的下标依次为 。答案:10 15 1215、一组记录的输入顺序为(25,38,65,90,72,14),则利用堆排序方法建立的初始“大顶堆”为 。答案:90,72,65,38,25,14四、简答题1、有一份电文中共使用8个字符:a、b、c、d、e、f、g、h,它们出现
10、的频度分别为:4、7、5、2、9、8、6、3,试设计一个编码使该段电文的总长度为最短。要求:(1)构造出哈夫曼树(要求所有左子树根结点的权值小于等于右子树根结点的权值);(2)求出每个字符的哈夫曼编码;(3)计算经哈夫曼编码后上述报文的最终长度。答案:(1)构造的哈夫曼树结构如下:0adfhgbe111111100000004515293918567118264430c(2)所有字符编码为:a=000,b=110,c=001,d=1000,e=01,f=111,g=101,h=1001 (3)经哈夫曼编码后上述报文的最终长度WPL为:WPL=4×3+5×3+9×2
11、+2×4+3×4+6×3+7×3+8×3=1282、某二叉树的结点数值采用顺序存储结构,如下图所示,要求:(1)画出该二叉树的结构;(2)分别写出该二叉树的前序和中序遍历序列;(3)分别写出结点F的双亲结点、左孩子结点和右孩子结点。结点编号123456789101112131415161718192021结点数值ABCDEFGHJMN第2题图答案:(1)GFD3BAC0J0E0H0MN(2)前序序列:ABDFMNGCEHJ 中序序列:BMFNDGACHEJ(3)结点F的左孩子结点为M,右孩子结点为N,双亲结点位D。3、输入一个正整数序列40,
12、28, 6, 72, 100, 3, 54, 1, 80, 91, 38,要求:(1)依次读取上述整数序列中的数据,构造一个二叉排序树; (2)如何根据此二叉树求得上述整数序列的一个有序序列?并写出该有序序列;(3)画出在此二叉树中删除结点“72”后得到的二叉树结构。答案:(1)构造的二叉排序树如下:33867210015480914028(2)上述二叉树的中序遍历序列即是该整数序列的一个有序序列:1,3,6,28,38,40,54,72,80,91,100(3)删除结点72后的二叉树结构为下面任意一种结构:338610015480914028或者3386100154809140284、对于如
13、下图所示的森林,要求:(1)写出图(a)所示的第一棵树的先序遍历序列;(2)将这个森林转换为相应的二叉树。NJAPMLKBDC(a) (b) (c)第4题图HGFEI答案: (1)图(a)所示树的先序序列为:ABEFGHCDI(2)该森林对应的二叉树结构如下:FCEN GJKLABMDJPH5、对于如下所示的加权图,写出用Kruskal算法构造最小生成树的过程,11796821135493712AGEFCBD10H并画出最后得到的最小生成树。 第5题图答案:最小生成树的构造过程如下图所示:1AGEFCBDH21AGEFCBDH2143AGEFCBDH213AGEFCBDH21543AGEFCB
14、DH216543AGEFCBDH6216543AGEFCBDH五、按照指定功能,通过填空完成下列算法 1、L是带头结点的链表的头指针,以e返回第i个元素Status GetElem_L (LinkList L,int i, ElemType &e) p = L->next; j = 1; while ( p!=NULL && j<i ) p = p->next; +j;if ( p =NULL | j>i ) return ERROR; e = p->data; return OK; / GetElem_L2、算术表达式求值的算符优先算法。
15、设OPTR和OPND分别为运算符栈和运算数栈,OP为运算符、界限符集合。operandType EvaluateExpression( ) InitStack(OPTR); Push (OPTR, #); InitStack(OPND); c=getchar( ); while ( c!=# | GetTop(OPTR)!=# ) if (! In (c, OP) Push(OPND, c);c=getchar( ); elseswitch ( Precede(GetTop(OPTR), c ) case <: Push(OPTR, c); c=getchar( ); break; ca
16、se =: Pop(OPTR, x); c=getchar( ); break; case >: Pop ( OPTR, theta); Pop ( OPND, b); Pop(OPND, a); Push ( OPND, Operate(a, theta, b) ); break; /switch /whilereturn GetTop(OPND); /EvaluateExpression3、后序遍历递归算法void PostOrderTraverse ( BiTree T , Status ( * Visit ) ( ElemType e ) ) / 采用二叉链表存贮二叉树, vis
17、it( )是访问结点的函数 / 本算法后序遍历以T为根结点指针的二叉树 if ( T ) PostOrderTraverse ( T->lchild, Visit ); PostOrderTraverse ( T->rchild, Visit ); Visit ( T->data ); /PostOrderTraverse4、在顺序表ST中顺序查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置,否则为0。int Search_Seq ( SSTable ST, KeyType key ) / ST.elem0.key = key; / “哨兵” for (
18、 i=ST.length; !EQ(key, ST.elemi.Key); -i ); return i; / 若表中不存在待查元素, i=0 /Search_Seq六、给出下列程序的运行结果(一)给出下列算法的功能描述1、typedef struct nodedatatype data;struct node *link; *LinkList;int Algo(LinkList list)if(list=NULL)return 0;elsereturn 1+Algo(list->link);答案:计算由list所指的线性链表的长度。2、void Algo ( MGraph G, Ver
19、texType u ) k = LocateVex ( G, u ); for ( j=0; j<G.vexnum; +j ) if ( j!=k ) closedge j = u, G.arcs k j .adj ; closedgek.lowcost = 0; for (i=0; i<G.vexnum; +i) k = minimum(closedge); printf ( closedgek.adjvex, G.vexsk ); closedgek.lowcost = 0; for ( j=0; j<G.vexnum; +j ) if ( G.arcskj.adj &l
20、t; closedgej.lowcost ) closedge j = G.vexsk, G.arcskj.adj ; 答案:用普里姆算法从顶点u出发构造网G的最小生成树3、void Algo(BiTree T,void(*Visit)(TElemType) LinkQueue q; QElemType a; if(T) InitQueue(&q); EnQueue(&q,T); while(!QueueEmpty(q) DeQueue(&q,&a); Visit(a->data); if(a->lchild!=NULL) EnQueue(&
21、q,a->lchild); if(a->rchild!=NULL) EnQueue(&q,a->rchild); printf("n"); 答案:层序遍历二叉树(二)给出下列程序的运行结果4、void main()Stack S;char x,y;InitStack(S);x='c' y='k'Push(S,x); Push(S,'a'); Push(S,y);Pop(S,x); Push(S,'t'); Push(S,x);Push(S,'s');while(!StackEmpty(S)Pop(S,y); printf(y);printf(x);答案:sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数学甘肃酒泉市2026年4月高三年级调研考试(酒泉三诊)(4.16-4.17)
- 2025工程(景观设施采购)合同
- 深度解析(2026)《GBT 25141-2022自吸式回转动力泵》宣贯培训
- 乡村旅游资源开发研究-以剑河县温泉村为例
- 交接班护理质量缺陷分析与PDCA纠正措施
- 2026年服务机器人交互可靠性提升策略:技术突破与场景落地实践
- 《JBT 20175-2017无菌隔离器》专题研究报告
- 初高中的历史教学衔接研究
- 二下快乐读书吧
- 急性左心衰的护理计划制定
- 南平市2025年南平仲裁委员会秘书处招聘工作人员2人笔试历年参考题库典型考点附带答案详解
- 2026年及未来5年市场数据中国玻璃酸钠注射液行业市场竞争格局及投资前景展望报告
- 2026广岩国际投资有限责任公司招聘14人建设笔试模拟试题及答案解析
- 【历史】 明清时期社会经济的发展 课件 2025-2026学年统编版七年级历史下册
- 国为什么说勇于自我革命是党能够引领社会革命的根本原因?参考答案(三)
- 雨课堂学堂在线学堂云《跨文化交际英语(北京理工)》单元测试考核答案
- 中国老年2型糖尿病防治临床指南(2026版)解读课件
- 紫金投资集团招聘笔试题库2026
- 游泳池设施设备安全检查制度
- 2025年安徽交控集团招聘笔试及答案
- 骨科护理中的人文关怀与沟通
评论
0/150
提交评论