Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

拓扑

Posted on 2023年9月19日2023年9月19日 by hackdl
#include 
#include 
#define N 20

//图的邻接表-边或弧存储
typedef struct EdgeNode {
	int adjvex;
	struct EdgeNode *next;
} EdgeNode;

//图的邻接表-顶点存储(增加了入度域)
typedef struct VNode {
	char data;
	int ind;  //顶点入度
	struct EdgeNode *link;
} VNode;

//图的邻接表表示
typedef struct ALgraph {
	int vexnum, arcnum;
	VNode *adjlist[N];
} ALGraph;

void createGraph_list(ALGraph *g);
int topSort(ALGraph *g);

//读入数据创建带入度的邻接表
void createGraph_list(ALGraph *g) {
	char v;
	int i = 0, j;
	EdgeNode *add, *temp;
	v = getchar();
	while (v != '#') {
		g->adjlist[i] = (VNode *)malloc(sizeof(VNode));
		g->adjlist[i] ->data = v;
		g->adjlist[i]->link = NULL;
		g->adjlist[i]->ind = 0;
		i++;
		v = getchar();
	}
	getchar();
	g->vexnum = i;
	g->arcnum = 0;
	scanf("%d,%d", &i, &j);
	while (i != -1 && j != -1) {
		add = (EdgeNode *)malloc(sizeof(EdgeNode));
		add->adjvex = j;
		add->next = g->adjlist[i]->link; // 将边节点添加到链表头部
		g->adjlist[i]->link = add;
		g->adjlist[j]->ind++;
		g->arcnum++;
		scanf("%d,%d", &i, &j);
	}




}

//拓扑排序,判断图中是否存在环,存在返回0
int topSort(ALGraph *g) {
	int Stack[N];
	int top = -1;
	int visit[N] = { 0 };
	int count = 0;
	EdgeNode *p;
	for (int i = 0; i vexnum; i++) {
		if (g->adjlist[i]->ind == 0) {
			Stack[++top] = i;
			visit[i] = 1;
		}
	}
	while (top != -1) {
		int oldvex = Stack[top--];
		count++;
		for (p = g->adjlist[oldvex]->link; p; p = p->next) {
			if (--g->adjlist[p->adjvex]->ind == 0) {
				if (!visit[p->adjvex]) {
					Stack[++top] = p->adjvex;
					visit[p->adjvex] = 1;
				}
			}
		}
	}
	if (count == g->vexnum) {
		return 1;
	} else {
		return 0;
	}
}


int main() {
	ALGraph g;
	int i;
	EdgeNode *s;
	createGraph_list(&g);
	for (i = 0; i data, g.adjlist[i]->ind);
		s = g.adjlist[i]->link;
		while (s != NULL) {
			printf("->%d", s->adjvex);
			s = s->next;
		}
		printf("n");
	}
	i = topSort(&g);
	if (i == 1) {
		printf("%dn", g.vexnum);
		printf("no ringn");
	} else {
		printf("%dn", i);
		printf("has ringn");
	}
	return 0;
}





服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net

相关推荐: #yyds干货盘点#灵活的 Node.js 多功能爬虫库 —— x-crawl

x-crawl x-crawl 是一个灵活的 Node.js 多功能爬虫库。灵活的使用方式和众多的功能可以帮助您快速、安全、稳定地爬取页面、接口以及文件。 如果你也喜欢 x-crawl ,可以给 x-crawl 存储库 点个 star 支持一下,感谢大家的支持…

Related posts:

  1. 专业高防机房服务器租用
  2. 优化托管服务器建设的建议与指南
  3. Nginx + Keepalived 高可用集群部署
  4. 官宣:OpenDAL 成功进入 Apache 孵化器
  5. Go语言:一文看懂什么是DI依赖注入(dependency injection)设计模式

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 发布 Copilot Chat Sample App
下一篇: 深入浅出MySQL – 架构与执行

最新更新

  • Java基本语法
  • lesson6 ZIgbee网络特性抓包分析ZIgbee网络特性抓包分析
  • Python Flask 上下文管理源码分析
  • WGS84与GCJ02、BD09经纬度坐标转换介绍
  • 使用固件库点亮LED流程

随机推荐

  • 大带宽服务器有什么用
  • 常熟服务器托管公司排名榜
  • kafka集群是如何选择leader,你知道吗?
  • 几十个简要的游戏案例分析 一、 介绍 二、 影响游
  • 如何知道代码跑得多慢?

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8