寒假训练--图的基本知识
2014-02-19 21:28
239 查看
•邻接矩阵:
▫map[i][j] 表示顶点i和顶点j的边关系
是否有边相连 0, 1表示
边权值map[i][j] = w;
▫空间复杂度:O(n^2)
▫访问速度快、直观、适合稠密
邻接表——边表
•结构:
•struct node
•{
• int u,v,w;
• intnext;
•}g[M];//作为静态内存来使用,速度快
•int head
,t=0;
初始化
•void init()
•{
• t = 0;
• memset(head,-1,sizeof(head));
•}
加边
•voidadd(int u, intv, int w)//添加边
•{
• g[t].u = u;
• g[t].v = v;
• g[t].w = w;
• g[t].next = head[u];
• head[u] = t;
• t++;//为下一次做准备
•}
循环遍历
•//使用的时候,找u的邻接点
•//循环查遍
•for(int i = head[u]; i!= -1; i = g[i].next)
•{
• int v= g[i].v;
• //然后处理:
•}
邻接表——链表
•结构:
•structnode
•{
• int u
• int v; //边的结束顶点
• int w; //边的长度
• node* next; //指向以同一起点的下一条边的指针
•}*head
; //head[u]指向以u为起始点的第一条边
初始化
•voidinit()
•{
• memset(head,NULL,sizeof(head));
•}
加边
•voidadd(int u, intv, int w)//添加边
•{
• node* p = new node;//node *p = (node*)malloc(sizeof(node));
• p->v = v;
• p->w = w;
• p->next = head[u];
• head[u] = p;
•}//传说中的挂链
循环遍历
•//使用的时候,找u的邻接点
•for(node*p = head[u]; p != NULL; p = p->next)
•{
• int v= p->v;
• //在这里作相应的处理
•}
▫map[i][j] 表示顶点i和顶点j的边关系
是否有边相连 0, 1表示
边权值map[i][j] = w;
▫空间复杂度:O(n^2)
▫访问速度快、直观、适合稠密
邻接表——边表
•结构:
•struct node
•{
• int u,v,w;
• intnext;
•}g[M];//作为静态内存来使用,速度快
•int head
,t=0;
初始化
•void init()
•{
• t = 0;
• memset(head,-1,sizeof(head));
•}
加边
•voidadd(int u, intv, int w)//添加边
•{
• g[t].u = u;
• g[t].v = v;
• g[t].w = w;
• g[t].next = head[u];
• head[u] = t;
• t++;//为下一次做准备
•}
循环遍历
•//使用的时候,找u的邻接点
•//循环查遍
•for(int i = head[u]; i!= -1; i = g[i].next)
•{
• int v= g[i].v;
• //然后处理:
•}
邻接表——链表
•结构:
•structnode
•{
• int u
• int v; //边的结束顶点
• int w; //边的长度
• node* next; //指向以同一起点的下一条边的指针
•}*head
; //head[u]指向以u为起始点的第一条边
初始化
•voidinit()
•{
• memset(head,NULL,sizeof(head));
•}
加边
•voidadd(int u, intv, int w)//添加边
•{
• node* p = new node;//node *p = (node*)malloc(sizeof(node));
• p->v = v;
• p->w = w;
• p->next = head[u];
• head[u] = p;
•}//传说中的挂链
循环遍历
•//使用的时候,找u的邻接点
•for(node*p = head[u]; p != NULL; p = p->next)
•{
• int v= p->v;
• //在这里作相应的处理
•}
相关文章推荐
- 寒假训练--图的基本知识--图的深度遍历
- 寒假训练--图的基本知识--图结构练习——BFSDFS——判断可达性
- 寒假训练--图的基本知识--图结构练习——BFS——从起始点到目标点的最短步数
- 寒假训练--树与二叉树--基本操作
- 深度神经网络基本知识-为何很难训练
- 2016寒假训练——数论
- xilinx zynq-7000 基本知识
- Cache基本知识与OR1200中ICache简介
- 有限元分析的基本知识
- JPA基础知识----JPA 基本注解,JPA API
- Linux基本知识
- Java基本知识
- Linux磁盘管理的基本知识简单整理
- 计算机一些基本进制单位及细节基础知识
- MTD(1)---nand flash的基本知识
- JSP基本知识学习
- 黑马程序员:C语言基本知识(2)
- NOSQL数据库基本知识(二)
- struts2之使用JSON插件实现Ajax(JSON基本知识)
- C++基础知识(四)文件的基本操作