有向图的存储
来源:互联网 发布:联通云数据待遇怎么样 编辑:程序博客网 时间:2024/05/01 20:36
方法一:用邻接表的方法存储,
先开辟一块大小为n的存储空间,每一块存储空间为一个链表的开头,一次将数据增加到相应的链表里。
#include<stdio.h>#include<stdlib.h>typedef struct Node{int data;Node *next;}Node;void show(Node &LJB,int number);int main(){printf("输入顶点数量\n");int number;scanf("%d",&number);printf("请输入连着的顶点a.b,ab同时为0时输入结束\n");int a,b;scanf("%d %d",&a,&b);//创建邻接表Node LJB;LJB.next=(Node *)malloc((number+1)*sizeof(Node));Node *p[number];p[1]=LJB.next;for(int i=1;i<=number;i++){p[i]=LJB.next+i;p[i]->next=NULL;p[i]->data=i;}while(!(a==0&&b==0)){p[a]->next=(Node *)malloc(sizeof(Node));p[a]=p[a]->next;p[a]->data=b;p[a]->next=NULL;scanf("%d %d",&a,&b);} for(int i=1;i<=number;i++){p[i]=LJB.next+i;}int j=1;printf("打印邻接表\n");for(j=1;j<=number;j++){while(p[j]){printf("%d->",p[j]->data);p[j]=p[j]->next;} printf("\n"); }return 0;}
方法二:用邻接矩阵的方法存储,
开辟一个矩阵,在相接的两个点对应的序号的位置存储为1,其余为0,例如:矩阵a[100][100],1和2相连,则a[1][2]=0
#include<stdio.h>#define size 100 //矩阵大小 void jz(int m[size][size],int a,int b);void show(int m[size][size],int number);int main(){int m[size][size];printf("输入顶点数量\n");int number;scanf("%d",&number);int a,b;printf("请输入连着的顶点a.b,ab同时为0时输入结束\n");scanf("%d %d",&a,&b);while(!(a==0&&b==0)){jz(m,a,b);scanf("%d %d",&a,&b);} show(m,number);return 0;}void jz(int m[size][size],int a,int b){m[a][b]=1;}void show(int m[size][size],int number){int i,j;for(i=1;i<number;i++){for(j=1;j<number;j++){printf("%d ",m[i][j]);}printf("\n");}}
1 0
- 有向图的存储
- 有向图的邻接矩阵存储
- 有向图的邻接表存储
- 邻接矩阵存储有向图
- 邻接矩阵存储有向图
- 有向图的十字链表存储
- 有向图的十字链表存储形式
- 有向图的十字链表存储结构
- 有向图的十字链表存储
- 有向图的十字链表存储表式
- 有向图的十字链表存储方法
- 用邻接表存储有向图
- 十字链表存储有向图
- 判断邻接表存储的有向图是否有环
- 采用邻接矩阵实现有向网的存储,建立有向网,并实现单源最短路径
- 用邻接矩阵存储的有向图的非递归遍历
- 有向图的打印
- 有向图的可达性
- Struts2自学入门(三)
- DMA的demo
- java基础知识点(一)
- Understanding FaceNet
- 运算符
- 有向图的存储
- tjut 4722
- 计算机的组成及其功能
- 笔试面试网络知识总结
- 【CDP-云设计模式】第8章,1.队列链表模式(Queuing Chain Pattern)
- 如何有效地阅读文献并做笔记
- UVALive 7327 Digit Division
- Hust oj 1987 逃课的孩子(Map)
- Hibernate的映射文件