博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十字链表的应用
阅读量:6587 次
发布时间:2019-06-24

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

#include
#include
#include
#include
#define MAX_VERTEX_NUM 20 using namespace std;typedef struct ArcBox{ int tailVex, headVex;//该弧的尾和头顶点的位置 struct ArcBox *hlink, *tlink;//分别为弧头相同和弧尾相同的弧的链域 ArcBox(){ hlink = NULL; tlink = NULL; }} ArcBox; typedef struct VexNode{ int data; ArcBox *firstin, *firstout; VexNode(){ firstin = NULL; firstout = NULL; } } VexNode; typedef struct{ VexNode xlist[MAX_VERTEX_NUM]; int vexnum, arcnum;} OLGraph;void buildG(OLGraph &g, int u, int v){ ArcBox *p = new ArcBox; /* 或者, new 方式可以调用类的构造函数 ArcBox *p = (ArcBox *)malloc(sizeof(ArcBox)); p->hlink = NULL; p->tlink = NULL; */ p->tailVex = u; p->headVex = v; if(g.xlist[u].firstout == NULL){//在弧尾的地方插入 g.xlist[u].firstout = p; } else { ArcBox *tmp = g.xlist[u].firstout; while(tmp->tlink) tmp = tmp->tlink;//找到和u节点相关的最后一个弧尾 tmp->tlink = p; } if(g.xlist[v].firstin == NULL){//在弧头的地方插入 g.xlist[v].firstin = p; } else { ArcBox *tmp = g.xlist[v].firstin; while(tmp->hlink) tmp = tmp->hlink;//找到和u节点相关的最后一个弧头 tmp->hlink = p; }}void inG(OLGraph g){ printf("从每一个节点出度方向遍历弧\n"); for(int i=1; i<=g.vexnum; ++i){ ArcBox *tmp = g.xlist[i].firstout;//找到弧尾节点为i的第一个节点 printf("节点 %d:\n"); while(tmp) { printf("弧 %d %d\n", tmp->tailVex, tmp->headVex); tmp = tmp->tlink; } }}void outG(OLGraph g){ printf("每一个节点的入度方向遍历弧\n"); for(int i=1; i<=g.vexnum; ++i){ ArcBox *tmp = g.xlist[i].firstin;//找到弧头节点为i的第一个节点 printf("节点 %d:\n"); while(tmp) { printf("弧 %d %d\n", tmp->tailVex, tmp->headVex); tmp = tmp->hlink; } }}int main(){ printf("请输入图的节点的个数和图的弧数:\n"); OLGraph g; scanf("%d %d", &g.vexnum, &g.arcnum); printf("请输入图的弧:\n"); for(int i=0; i

转载地址:http://mgeno.baihongyu.com/

你可能感兴趣的文章
使用tar或dd等完成Linux系统备份恢复
查看>>
matlab的special函数用法
查看>>
函数指针和回调函数
查看>>
信号(signal)
查看>>
dns
查看>>
想打造一款成功的移动应用?你最需要关注性能指标!
查看>>
翻译 - 元编程动态方法之public_send
查看>>
ES6中的高阶函数:如同 a => b => c 一样简单
查看>>
C语言之枚举的定义以及测试
查看>>
35.函数介绍
查看>>
node主要应用场景是在大前端
查看>>
Linux的目录ls命令
查看>>
JDBC-简单连接Oracle Database
查看>>
mysql小问题集锦
查看>>
集群tomcat+session共享
查看>>
类火墙的iptables
查看>>
Linux初级入门百篇-LVM 简介
查看>>
MySQL--事务
查看>>
腾讯云首发智能网关流控,公有云进入网络精细管控时代
查看>>
如何在思科虚拟PC机信息进行修改
查看>>