数据结构复习.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构复习

1. (6分)将关键字序列(,8,30,11,18,9,14)散列。 (1)邻接表的类型定义: const MAX_VERTEX_NUM=20; typedef struct ArcNode{ int adjvex; //该弧所指向的顶点的位置 struct ArcNode *nextarc; //指向下一条弧的指针 InfoType weight; //指向该弧相关的权值 }ArcNode; typedef struct VNode{ VertexType data; //顶点信息 ArcNode *firstarc; //指向第一条依附该顶点的弧 }VNode, AdjList[MAX_VERTEX_NUM]; const MAX_VERTEX_NUM=20; typedef struct{ AdjList vertices; int vexnum, arcnum; //图的当前顶点数和弧数 int kind; //图的种类标志 }ALGraph; (2)生成树(每条边0.5分) 3.(6分)已知有6个顶点(顶点编号为0~5)单位有向带权图G,其邻接矩阵A为上三角矩阵,按行主序(行优先)保存在如下的一维数组中。 4 6 ∞ ∞ ∞ 5 ∞ ∞ ∞ 4 3 ∞ ∞ 3 3 要求:(1)写出G的邻接矩阵A;(2)画出图G;(3)写出从顶点0出发进行深度优先搜索和广度优先搜索的遍历顺序。 (1)G的邻接矩阵A (2分) (2)图G(2分) (3)从顶点0出发的深度优先搜索的遍历:012453 (1分) 从顶点0出发的广度优先搜索的遍历:012345 (1分) 4.(6分) 根据给定的关键字序列(5,18,26,88,45,78,81)构造一棵平衡二叉树,要求给出插入每个关键字的步骤。 5. (6分)求下图的关键路径及非关键活动的松弛时间。 上表各2分。 活动a2,a3,a5,a6,a7,a9,a10,a11为关键活动。………………… (1分) a1 的松弛时间为2,a4 的松弛时间为2,a8 的松弛时间为1。………………… (1分) 1. 已知一个带有表头结点的单链表,假设该链表只给出了头指针L。要求: (1)写出单链表LinkList的定义;(2)在不改变单链表的前提下,设计一个尽可能高效的算法,查找链表中的倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的域的值,并返回True;否则,只返回False。算法的函数头为:bool InverseSearchList(LinkList L,int k,ElemType e)。自己想 2.请写出树按层次遍历的算法,树采用孩子-兄弟表示法存储。要求先写出树的存储结构,再写层次遍历函数。 typedef struct CSNode { Elem data; struct CSNode *firstchild,*nextSibling; }CSNode,*CSTree; void BFSTraverse(CSTree T) { SqQueue Q; CSNode *p=T; InitQueue_Sq(Q); if(T){ EnQueue_Sq(Q,T); while(!QueueEmpty_Sq(Q)){ DeQueue_Sq(Q,p); coutp-data ; if(p- firstchild) { EnQueue_Sq(Q,p- firstchild ); p=p- firstchild; } while(p- nextSibling) { EnQueue_Sq(Q,p- nextSibling); p=p- nextSibling } }//while }//if }//BFSTraverse a c b d e g k f h a9=6 a1=6 a2=4 a3=5 a4=1 a5=5 a6=6 a11=4 a10=4 a8=7 a7=8 4 1 3 0 2 5 4 5 6 3 4 3 3 26 (26) 5 18 18 5 (18) 5 (5)) (45) 5

文档评论(0)

tmd2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档