大数据结构拓扑排序实验报告材料

大数据结构拓扑排序实验报告材料

ID:36729657

大小:90.43 KB

页数:13页

时间:2019-05-14

大数据结构拓扑排序实验报告材料_第1页
大数据结构拓扑排序实验报告材料_第2页
大数据结构拓扑排序实验报告材料_第3页
大数据结构拓扑排序实验报告材料_第4页
大数据结构拓扑排序实验报告材料_第5页
资源描述:

《大数据结构拓扑排序实验报告材料》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用标准拓扑排序[基本要求]用邻接表建立一个有向图的存储结构。利用拓扑排序算法输出该图的拓扑排序序列。[编程思路]首先图的创建,采用邻接表建立,逆向插入到单链表中,特别注意有向是不需要对称插入结点,且要把输入的字符在顶点数组中定位(LocateVex(GraphG,char*name),以便后来的遍历操作,几乎和图的创建一样,图的顶点定义时加入intindegree,关键在于indegree的计算,而最好的就是在创建的时候就算出入度,(没有采用书上的indegree【】数组的方法,那样会增加一个indegree算法,而是在创建的时候假如一句计数

2、的代码(G.vertices[j].indegree)++;)最后调用拓扑排序的算法,得出拓扑序列。[程序代码]头文件:#defineMAX_VERTEX_NUM30#defineSTACKSIZE30#defineSTACKINCREMENT10#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineTRUE1#defineFALSE0typedefintStatus;typedefintInfoType;typedefintStatus;文案大全实用标准typede

3、fintSElemType;/*定义弧的结构*/typedefstructArcNode{intadjvex;/*该边所指向的顶点的位置*/structArcNode*nextarc;/*指向下一条边的指针*/InfoTypeinfo;/*该弧相关信息的指针*/}ArcNode;/*定义顶点的结构*/typedefstructVNode{intindegree;chardata[10];/*顶点信息*/ArcNode*firstarc;/*指向第一条依附该顶点的弧的指针*/}VNode,AdjList[MAX_VERTEX_NUM];/*定义图

4、的结构*/typedefstruct{AdjListvertices;intvexnum,arcnum;/*图的当前顶点数和弧数*/intkind;/*图的类型标志*/}Graph;文案大全实用标准/*定义栈的结构*/typedefstruct{SElemType*base;SElemType*top;intstacksize;}Stack;/*顶点定位*/intLocateVex(GraphG,char*name);/*创建有向图*/voidCreateGraph(Graph&G);/*拓扑排序*/StatusTopologicalSort(

5、GraphG);/*初始化栈*/StatusInitStack(Stack&s);文案大全实用标准/*判断空*/StatusEmptyStack(Stacks);/*压栈*/StatusPush(Stack&s,inte);/*出栈*/StatusPop(Stack&s,int&e);实现文件:#include#include"malloc.h"#include"tuopupaixuhead.h"#include"stdlib.h"#include"string.h"boolvisited[MAX_VERTEX_NUM];/*

6、***********************************************************顶点定位,返回位序************************************************************/intLocateVex(GraphG,char*name){inti;for(i=1;i<=G.vexnum;i++)文案大全实用标准if(strcmp(name,G.vertices[i].data)==0)//返回数组的位置returni;return-1;}/************

7、************************************************创建有向图************************************************************/voidCreateGraph(Graph&G){ArcNode*p;charname1[10],name2[10];inti,j,k;printf("请输入顶点数,按回车键结束:");scanf("%d",&G.vexnum);printf("请输入弧数,按回车键结束:");scanf("%d",&G.arcnum);

8、printf("请依次输入顶点名(用空格分开且字符小于10),按回车键结束:");printf("");for(i=1;i<=G.vexnum;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。