C数据结构学习历程(7) 图之十字链表 表示法
来源:互联网 发布:cad网络面板 编辑:程序博客网 时间:2024/05/01 21:27
我是参照《严蔚敏数据结构ppt》http://wenku.baidu.com/view/3ff16fc20242a8956aece41d.html以及《大话数据结构》来写的,因为ppt上有些错,而视频上的代码不全,自己另写了。ppt上错哪,我就不指出了,大家可以对照着看,就能发现不同之处。
#include<iostream>using namespace std;#define MAX_VERTEX_NUM 20#define INFINITY 65535 //用这个值代表无穷,define的用法还可以带参数typedef char VertexType; //顶点类型typedef int InfoType ; //typedef为类型定义typedef struct ArcBox{int tailvex,headvex; //表示一条弧的尾和头 的下标struct ArcBox * hlink,*tlink;InfoType *info;}ArcBox;typedef struct VexNode{VertexType data;ArcBox *firstin,*firstout;}VexNode;typedef struct{VexNode xlist[MAX_VERTEX_NUM];int vexnum,arcnum; //顶点数和弧数}OLGraph;int LocateVex(OLGraph G,VertexType vp){for(int k=0;k<G.vexnum ;k++){if(G.xlist [k].data ==vp){return k;}}return (-1);}void CreateDG(OLGraph &G){//构造有向图VertexType v1,v2; int i1,i2;cin>>G.vexnum>>G.arcnum ;for(int i=0;i<G.vexnum;i++) //构造表头向量{cin>>G.xlist [i].data ; //输入顶点值 G.xlist [i].firstin =NULL;G.xlist [i].firstout =NULL; //初始化指针}for(int k=0;k<G.arcnum ;k++){cin>>v1>>v2; //这是输入弧 的两个开始点(对应为弧的尾巴)和结尾点 i1=LocateVex(G,v1);i2=LocateVex(G,v2);ArcBox *p=(ArcBox*)malloc(sizeof(ArcBox));/*ArcBox *p;ArcBox p1={i1,i2,G.xlist[i2].firstin,G.xlist[i1].firstout,NULL}; //这样子就不用开指针了p=&p1;*/ //书上好像有错做不到 *p={};p->tailvex =i1;p->headvex =i2;p->hlink =G.xlist[i2].firstin;p->tlink =G.xlist[i1].firstout;p->info=NULL;G.xlist[i2].firstin=G.xlist[i1].firstout=p; }}int main(){OLGraph G;CreateDG(G);G.xlist [0].firstin ;return 0;}
0 0
- C数据结构学习历程(7) 图之十字链表 表示法
- C数据结构学习历程(5) 图之数组表示法
- 数据结构之---C语言实现图的十字链表存储表示
- 学习笔记------数据结构(C语言版)数组之十字链表
- C数据结构学习历程(5) 图之数组表示法的BFS
- 数据结构:有向图的十字链表存储表示(c实现)
- 数据结构之---C++语言实现图的十字链表存储表示
- 数据结构之图的十字链表
- 数据结构之十字链表
- 数据结构-图-十字链表
- 看数据结构写代码(37) 图的十字链表的表示与实现
- 数据结构学习笔记 --- 图(十字链表)
- 【学习笔记----数据结构17-图的十字链表】
- 数据结构学习笔记 --- 图(十字链表)
- 数据结构之图的十字链表表示法
- 动手实现 数据结构 之 “十字链表”
- C数据结构学习历程(4) 链栈之 括号匹配
- C数据结构学习历程(6) 图之邻接表表示法
- MySQL存储过程入门
- Linux自学笔记(二)分区
- HackerRank: Bricks Game
- 代码总结
- Nodewebkit 设置任务栏图标
- C数据结构学习历程(7) 图之十字链表 表示法
- Unity3D A 星寻路(A*) C# 版本
- [LeetCode]--239. Sliding Window Maximum(Deque)
- 安卓使用Java语言从身份证号码中截取出生日期、省份、性别、年龄
- Mac 装 Win10教程
- Android 仿UC浏览器三点加载效果
- Bootstrap里按钮的动态实现
- POJ 3660 Cow Contest (Ployd) -
- 初始Ubuntu