我是靠谱客的博主 无限月光,最近开发中收集的这篇文章主要介绍拓扑排序的算法和单链表的建立,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

拓扑排序简单的说是由某个集合上的一个偏序得到该集合上的一个全序,这个操作称为拓扑排序。

拓扑排序的算法:

void FindInDegree(ALGraph G, int indegree[]) {
	for (int i = 0; i < G.vexnum;++i ) {
		int count = 0;
		for (int j = 0; j < G.vexnum; j++) {
			ArcNode* p = new ArcNode;
			p = G.vertices[j].firstarc;
			while (p) {
				if (p->adjvex == i)
					count++;
				p = p->nextarc;
			
			indegree[i] = count;
		}
	}
}

结果:

输入:
6 8
v1 v2 v3 v4 v5 v6
v1 v2
v1 v3
v1 v4
v3 v2
v3 v5
v4 v5
v6 v4
v6 v5

建立线性表的链式存储结构的过程就是一个动态生成链的过程。

建立单链表的算法

void CreateList_L(LinkList &L,int n)
{
L=(LinkList)malloc(sizeo(LNode));
L->next=NULL;
for(i=0;i>0;-i){
p=(LinkList)malloc(sizeo(LNode));
scanf(&p->data);
p->next=L->next;L-next=p;
}
}

最后

以上就是无限月光为你收集整理的拓扑排序的算法和单链表的建立的全部内容,希望文章能够帮你解决拓扑排序的算法和单链表的建立所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部