AOV网和Topo排序
来源:互联网 发布:python与 shell 编辑:程序博客网 时间:2024/05/29 09:36
1. 代码
#include<stdio.h>#include<stdlib.h>#define MAX_VEX 100//表结点 typedef struct node {int adjvex;//邻接顶点域 struct node* next; //指向下一顶点的指针域 }ARCNODE;typedef struct {ARCNODE *firstarc;//边表头节点 int vertex;//顶点域,存储入度 }VEXNODE;VEXNODE adjlist[MAX_VEX];//创建邻接表 int creat(){int vexnum, edgnum;int i;int v1, v2;printf("输入顶点数,边数(vexnum,edgnum)=");scanf("%d,%d",&vexnum, &edgnum);for(i=1;i<=vexnum;i++){adjlist[i].vertex=0;adjlist[i].firstarc = NULL;}ARCNODE *ptr;for(i=1;i<=edgnum;i++){ptr=(ARCNODE*)malloc(sizeof(ARCNODE));printf("(v1,v2)=");scanf("%d,%d",&v1,&v2);ptr->adjvex=v2;ptr->next=adjlist[v1].firstarc;adjlist[v1].firstarc=ptr;adjlist[v2].vertex++; /*//无向图还要加上 ptr=(ARCNODE*)malloc(sizeof(ARCNODE)); ptr->adjvex=v1;ptr->next=adjlist[v2].firstarc;adjlist[v2].firstarc=ptr;*/} return vexnum;}/*拓扑排序 1. 在网上选取没有前驱(入度为0)的顶点,输出之;2. 删除该顶点,以及该顶点出发的全部边;3. 重复1,2,直至不存在入度为0的顶点 */void toposort(int vexnum) {//队列,将入度为0的顶点入度 int queue[vexnum+1];int i;int front, rear;front=rear=0;int sum=0;//用于计数,以判断结束时时顶点是否全部输出(topo排序是否存在) for(i=1;i<=vexnum;i++) if(adjlist[i].vertex==0){rear++;queue[rear]=i;}printf("排序结果: ") ;while(front!=rear){printf("%d ",queue[++front]);//输出队首 sum++;//ARCNODE *p=adjlist[queue[front]].firstarc;while(p){adjlist[p->adjvex].vertex--;if(adjlist[p->adjvex].vertex==0){queue[++rear]=p->adjvex;}p=p->next;}}if(sum<vexnum)printf("\nnot a set of partial order!\n");}int main(){int vexnum=creat();toposort(vexnum); return 0;}
2. 结果
阅读全文
0 0
- AOV网和Topo排序
- AOV网拓扑排序算法
- AOV网与拓扑排序
- AOV网与拓扑排序
- AOV网的拓扑排序
- Topo排序
- 【数据结构】算法7.12 AOV-网 拓扑排序
- 数据结构之AOV网与拓扑排序
- 【算法】基于AOV网的拓扑排序
- 【笔记】AOV网与拓扑排序
- AOV拓扑排序
- AOV 拓扑排序
- AOV 拓扑排序
- 拓扑排序与AOV
- 拓扑排序---AOV图
- poj 2367 topo 排序
- 算法:AOV网(Activity on Vextex Network)与拓扑排序
- AOV网的所有拓扑排序实现的代码
- 搭建linux服务器集群,简单实现,负载均衡,动静分离,数据主从复制,分布式缓存,共享session回话。
- java学习笔记(4)
- python %r 和%s的区别
- 手把手教你AndroidStudio多渠道打包
- 匿名内部类
- AOV网和Topo排序
- iOS notification的优势及缺点
- javaEE全套视频
- 笔记筑:Algorithm Part
- ORACLE监听配置以及使用plsql连接oracle
- java8 笔记
- MAC 下安装opencv3
- 使用过滤器处理404错误获得指定资源。
- Java EE开发第十章:tomcat的搭建以及web项目的创建