算法及数据结构课程设计报 告.docxVIP

  1. 1、本文档共10页,可阅读全部内容。
  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.单链表的基本操作与应用。2.栈的基本操作及应用。3.数组的基本操作与应用。4.树的基本操作与应用。5.图的基本操作与应用。由于总的框架和单链表的实现已经给出,剩下的就是把后面4个基本操作及应用实现,将其功能函数添加进去,通过选择调用这些功能函数实现要求。单链表已经给出,不需要设计写出功能函数,只需要将代码整理便可实现要求。例如创建单链表:void OnCreateList_L(){int n;cout 请输入表长:;cin n;CreateList_L(L,n); //已给函数}其他功能如插入,查找,删除均可按上面方法调用功能函数,2栈的基本操作及应用。首先按照要求,创建栈结构体,包含数据域和指针域。将要实现的功能对应的功能函数写出。要实现的功能是进栈Push(),出栈Pop(),取栈顶元素OnGetTop()。在对应功能选择项下面来调用这些函数。3.稀疏矩阵的压缩存储及应用。创建三元组Triple结构体,包含行列下标i,j,元素e。创建矩阵TSMatrix结构体,包含Triple类型data[MAXSIZE+1],矩阵矩阵的行数mu,列数nu和非零元个数tu。实现CreateSMatrix()函数创建矩阵,PrintSMatrix()函数显示已创建的矩阵。在对应功能选择项下面来调用这些函数。4. 树的基本操作与应用。创建BiTNode结构体,包含char类型data,结构体类型BiTNode指针*left,*right。实现InitBiTree(),CreateBiTree(),Visit()对元素操作的的应用函数,先序遍历PreOrderTraverse()对每个数据元素调用函数Visit。中序遍历InOrderTraverse (),后序遍历PostOrderTraverse(),计算树的深度BiTreeDepth(),计算叶子节点个数Leave()返回左右子树为空的个数,查找双亲BiTNode* Parent(),查找兄弟OnBrother()调用Parent()找到双亲下面左右子树。实现这些函数便可完成基本操作。将三个遍历函数的调用放在OnTraverse()里,实现一次性调用遍历。同时,在对应功选择项下面来调用这些函数。5.图的基本操作与应用。图的操作都是以两种存储结构为基础的,邻接矩阵存储结构和邻接表存储结构。如4种图(无向图,无向网,有向图,有向网)的创建,其他的操作都是在四种图创建后才开始进行的。所以,首先必须理解两种存储结构的定义。图的邻接矩阵存储结构即图的数组表示法。创建关于弧ArcNode结构体体,{intadjvex;struct*nextarc;Infotype *info;}ArcNode。创建结VNodetypedef struct VNode{ VertexType data; ArcNode* firstarc;} VNode,AdjList[MAX_VERTEX_NUM];创建ALGraph结构体typedef struct{ AdjList vertices; int vernum, arcnum; int kind;} ALGraph所有结构体已经创建完成,接下来就是实现功能函数,CreatUDG_ALG(ALGraph ALG)创建无向图的邻接表,CreatUDN_M(MGraph MG)创建无向网,CreatDG_ALG(ALGraph ALDG)创建有向图,CreatDN_ALG(ALGraph ALDN)创建有向网。遍历OnTraverse(ALGraph ALG)包含深度DFSTraverse(ALGraph ALG, Status(*Visit)(int v)),DFS(ALGraph ALG,int v),和广度BFSTraverse(ALGraph ALG, Status(*Visit)(int v))遍历。二.实现过程1.功能图2.创建无向图过程图三.实现代码Status TopologicalSort(ALGraph G) { // 算法7.12 // 有向图G采用邻接表存储结构。 // 若G无回路,则输出G的顶点的一个拓扑序列并返回OK,否则ERROR。 SqStack S; int count,k,i; ArcNode *p; char indegree[MAX_VERTEX_NUM]; FindInDegree(G, indegree); // 对各顶点求入度indegree[0..vernum-1] InitStack(S); for (i=0; iG.vexnum; ++i)

文档评论(0)

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

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

1亿VIP精品文档

相关文档