博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拓扑排序---(图的领接表实现)
阅读量:6682 次
发布时间:2019-06-25

本文共 1550 字,大约阅读时间需要 5 分钟。

#include
using namespace std;#define MAX_NODE 30#define MAX_INFO 10bool isOutput[MAX_NODE]; //记录该节点有没有输出struct ListNode{ ListNode(){next=NULL;} int position; ListNode* next; };struct VertexNode{ VertexNode() { head=NULL; inDegree=0; } int currentPosition; //当前节点在图存储结构中数组的位置 int inDegree; //该节点的入度 char info[MAX_INFO]; //该节点的信息 ListNode* head; //该节点相邻节点的第一个节点};struct Graphic{ int vertex,edge; VertexNode vers[MAX_NODE];};void createGraphic(Graphic& graphic){ cout<<"请输入节点数和边数: "; cin>>graphic.vertex>>graphic.edge; cout<<"请输入节点信息:"<
>graphic.vers[i].info; } cout<<"请输入边信息:"<
>first>>second; ListNode* temp=new ListNode; temp->position=second; temp->next=graphic.vers[first].head; graphic.vers[first].head=temp; ++graphic.vers[second].inDegree; } for(i=0;i
"; temp=graphic.vers[i].head; if(!temp) { cout<<"NULL"; } while(temp) { cout<
position<<" "; temp=temp->next; } cout<
position]) { cout<
position].info<<" "; isOutput[head->position]=true; } TopologicalSortForVertex(graphic,head->position); head=head->next; }}void TopologicalSort(Graphic& graphic){ VertexNode* zeroNode=findZeroInDegreeNode(graphic); if(!zeroNode) return; if(!isOutput[zeroNode->currentPosition]) { cout<
info<<" "; isOutput[zeroNode->currentPosition]=true; } TopologicalSortForVertex(graphic,zeroNode->currentPosition); TopologicalSort(graphic);}void main(){ Graphic myGraphic; createGraphic(myGraphic); printGraphic(myGraphic); TopologicalSort(myGraphic);}

你可能感兴趣的文章
Linux下密码过期时间设置
查看>>
神经质人格
查看>>
iOS 画圆形
查看>>
OSSEC编写DECODE
查看>>
Hibernate 通用底层Dao
查看>>
JAVA 常用的工具类总结
查看>>
网络安装linux
查看>>
社交大革命,不可遏止的互联网春天
查看>>
蜂巢科技发布首款创新产品“小清新”空气卫士
查看>>
今天访问量过3000了,自己留个脚印
查看>>
FFmpeg笔记 -- AVPacket、AVFrame
查看>>
工作区配置 4
查看>>
Android开发工程师,前行路上的14项技能
查看>>
w 查看系统负载 uptime vmsta 详解 top 详解 sar 命令 free 命令
查看>>
ps 查看进 netstat 查看端口
查看>>
网页图表Highcharts实践教程之认识Highcharts
查看>>
LPC2103学习之GPIO
查看>>
管理岗是什么鬼?
查看>>
创建一个当前时间凌晨
查看>>
Python 学习笔记 - 多进程和进程池
查看>>