【数据结构】邻接表的储存结构 建立图的邻接表算法

本文探讨了数据结构中的邻接表,重点在于其作为图的存储方式。邻接矩阵虽然表示唯一,但在邻接表中,不同的算法和输入顺序可能导致不同的表示。邻接矩阵适用于稠密图,而邻接表则更适用于稀疏图的存储。内容涵盖了直接输入和文件操作两种建立邻接表的方法。
摘要由CSDN通过智能技术生成

【数据结构】邻接矩阵及其实现

一个图的邻接矩阵的表示是唯一的,但其邻接表表示不唯一,这是因为在邻接表结构中,各便表结点的链接次序取决于建立邻接表时的算法以及输入的次序。

一般而言邻接矩阵适合存储稠密图,邻接表适合存储稀疏图。

直接输入: 

#include <stdio.h>
#include <stdlib.h>
#define M 20
 
/*邻接表的储存结构*/
typedef struct node /*表结点 或者 边表结点*/
{
	int adjvex;
	struct node *next;
}edgenode;
 
typedef struct vnode /*头结点*/
{
	char vertex;
	edgenode *firsteage;
}vertexnode;
 
typedef struct	/*邻接表类型*/
{
	vertexnode adjlist[M];
	int n,e;
}linkedgraph;
 
//建立图的邻接表(文件  或者  直接输入)
void creat(linkedgraph *g,int c)
{
	int i,j,k;
	edgenode *s;
	printf("请输入顶点数和边数:\n");
	scanf("%d%d",&g->n,&g->e);
	getchar();
	printf("请依次输入各个顶点的值:\n");
	for(i=0;i<g->n;i++)
	{
		scanf("%c",&g->adjlist[i].vertex);
		g->adjlist[i].firsteage=NULL
  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值