邻接表代码实现

本文详细介绍了图的数据结构之一——邻接表,并通过代码示例展示了如何在实际编程中实现邻接表,帮助理解其工作原理和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#include<iostream>
#include<cmath>
using namespace std;
struct Edgenode{  //边结点 
	int t; //大小道 
	int index;
	int c;//道路长度公里 
	Edgenode *next;    //指针声明要确定类型,不是int型 
};
struct Dnode{//顶点结点 
	int data;
	Edgenode *first; //边表头指针 
}; 
class Grade{
public:
	int n,m;//n个路口,m个道路
	Dnode *D;//顶点数组 
	Grade();
	void Create_Grade();
	void print();	
}; 
/*第一次意识到构造函数的重要性,如果这次编程把构造函数里的代码放到
create函数里则程序运行崩溃*/
Grade::Grade(){
	cin>>n>>m;//输入顶点数,边数
	D=new Dnode[n]; //顶点数组
	for(int i=1;i<=n;i++){//给路口号初始化1,2,3,4。。。n 
		D[i].data=i;
		D[i].first=NULL;
	}
}
void Grade::Create_Grade(){
	int t,a,b,c; 
	Edgenode *e; 
	for(int i=0;i<m;i++){
		cin>>t>>a>>b>>c;
		e=new Edgenode;
		e->t=t;
		e->index=b;
		e->c=c;
		e->next=NULL;
		if(D[a].first==NULL)
			D[a].first=e;
		else{
			e->next=D[a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值