数据结构拓扑排序实验报告.docx
《数据结构拓扑排序实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构拓扑排序实验报告.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、拓扑排序基本要求用邻接表建立一个有向图的存储结构。利用拓扑排序算法输出该图的拓扑排序 序列。编程思路首先图的创建,采用邻接表建立,逆向插入到单链表中,特殊注意有向是不需要对称插 入结点,且要把输入的字符在顶点数组中定位(LocateVex(Graph G, char *name),以便后 来的遍历操作,几乎和图的创建一样,图的顶点定义时加入int indegree,关键在于indegree 的计算,而最好的就是在创建的时候就算出入度,(没有采用书上的indegree。数组的方 法,那样会增加一个indegree算法,而是在创建的时候假如一句计数的代码 (G. vertices j. indeg
2、ree) +;)最后调用拓扑排序的算法,得出拓扑序列。程序代码头文件:#paJina MAX_VHxTHX_NUM cO#paJina STAO为SIZH cO#paJina STAO为INOxHMHNT 10#paJina O 为I#paJina HxxOx#paJinaINHHASIH 质 H#paJina OVHxH 质 OW#paJina TxUH1#paJina HAJ贡SH0$AdapaJ in$ S$e$us:SAdapaJ in$ InJoTAda: $AdapaJ in$ S$e$us:SAdapaJ in$ SHIamT人da:/*定义弧的结构*/*该边所指向的顶点的位置*
3、/*指向下一条边的指针*/*该弧相关信息的指针*/SAdapaJ s$tuo$ AtioNopa in$ ep!vax: s$tiuo$ AtioNopa *nax$eto: InJoTAda inJo:JArcNode;/*定义顶点的结构*/typedef struct VNodeint indegree;char data10;/*顶点信息*/ArcNode *firstarc;/*指向第一条依附该顶点的弧的指针*/VNodezAdjListMAX_VERTEX_NUM;/*定义图的结构*/ typedef struct Adj List vertices;/*图的当前顶点数和弧数*/*图
4、的类型标志*/int vexnumzarcnum;int kind;Graph;/*定义栈的结构*/typedef struct(SEIemType *base;SEIemType *top;int stacksize;Stack;/*顶点定位*/int LocateVex(Graph G,char *name);/*创建有向图*/void CreateGra ph (Graph &G);/*拓扑排序*/StatusTopologicalSort(Graph G);/*初始化栈*/Status InitStack(Stack &s);/*判断空*/Status EmptyStack(Stack
5、 s);/*压栈*/Status Push(Stack &s,int e);/*出栈*/Status Pop(Stack &s,int &e);实现文件:include #include,malloc.h,#include tuopupaixuhead.h#include stdlib.hinclude string.hbool visitedMAX_VERTEX_NUM;/* 顶点定位,返回位序*/ int LocateVex(Graph G,char *name)(int i;for(i=l;i =G.vexnum;i+)if(strcmp(name,G.verticesi.data)=O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 拓扑 排序 实验 报告
限制150内