#include <iostream>
#include <queue>
using namespace std;
int n,m;
const long edge_maxn=1005;
const long point_maxn=105;
struct node
{
int v,w,next;
}edge[edge_maxn];
int pre[point_maxn];
int Index;
void addEdge(int x,int y,int w)
{
edge[Index].v=y;
edge[Index].w=w;
edge[Index].next=pre[x];
pre[x]=Index++;
}
void Init()
{
memset(pre,-1,sizeof(pre));
Index=1;
int i,x,y,w;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&x,&y,&w);
addEdge(x,y,w);
}
}
void print()
{
for(int i=1;i<=n;i++)
{
printf("%d\n",i);
for(int j=pre[i];j!=-1;j=edge[j].next )
{
printf("-> %d value is %d\n",edge[j].v,edge[j].w);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF&&(n!=0||m!=0))
{
Init();
print();
}
return 0;
}
分享到:
相关推荐
1、构造图的两种存储方式 3、输出两种存储方式,并进行转化,看是否得到了正确的结果 4、在邻接表的基础上实现图的遍历操作 5、编写图的最小生成树算法,并进行验证 6、编写最短路径算法,并对输入的图进行验证
编写在邻接矩阵或邻接表存储结构下,带权有向图基本操作的实现函数(如初始化图、在图中插入一个结点、在图中插入一条边、在图中寻找序号为v的结点的第一个邻接结点、在图中寻找序号为v1结点的邻接结点v2的下一个...
图的创建、插入删除节点、深度广度遍历、球连通分支、最小生成树、求最短路径...
以邻接表的形式建立和存储图。将每次新输入的节点插在表尾端,然后输出邻接表。并用深度优先搜索法进行图的遍历。
1、 掌握图的结构特征以及四种存储结构(数组表示法、邻接表、十字链表和邻接多重表)的特点和程序设计方法。 2、 掌握在邻接矩阵或邻接表存储结构下图的深度优先和广度优先遍历算法的设计方法。 3、 进一步掌握递归...
存储结构:邻接矩阵; 实现功能:广度遍历; 博客中的代码实现
这是用邻接链表作存储结构的图类源代码,下面是图类的声明部分: struct ArcNode //弧节点结构 { int adjvex; ArcNode *nextarc; }; struct VexNode //顶点结构 { int vexdata; ArcNode *firstarc; }; //邻接...
(1)画出如图(1)所示无向图的邻接矩阵和邻接表,列出该图的广度优先遍历和深度优先遍历结果(选定A为出发点进行遍历)。 (2)画出如图(2)所示有向图的邻接矩阵和邻接表,列出该图的广度优先遍历和深度优先遍历...
c数据结构链表数组以及深度优先遍历,假设给定图G的初态是所有顶点均未曾访问过。在G中任选一顶点v为初始出发点(源点),则深度优先遍历可定义如下:首先访问出发点v,并将其标记为已访问过;然后依次从v出发搜索v的...
int creatadjlist() /*建立邻接表*/ { ARCNODE *ptr; int arcnum,vexnum,k,v1,v2; printf("请输入顶点数和边数(输入格式为:顶点数,边数):"); scanf("%d,%d",&vexnum,&arcnum); /*输入图的顶点数和边数(弧数)*...
包括: 克鲁斯卡尔算法构造最小生成树.swf 邻接表表示的图的广度优先遍历.swf 邻接表表示的图的深度优先遍历.swf 图的深度优先遍历.swf 拓扑排序.swf 最短路径.swf 希望对朋友们有帮助
2019/11/11 20:30 1,917 数组.cpp 2019/09/28 16:28 1,879 无头结点链表.cpp 2019/12/16 20:10 1,955 查找表.cpp 2019/11/25 21:17 2,442 树.cpp 2019/09/10 21:44 641 立方体.cpp 2019/10/24 18:28 3,455 算术...
(1)以邻接表作为图的存储结构,从键盘输入图的顶点与弧的信息建立一个有向图; (2)对(1)中生成的有向图进行深度优先遍历并打印结果; (3)在(1)中生成的有向图中,分别插入与删除一条弧并打印其结果; (4)在(1...
数据结构实验内容:线性表(顺序表实现)、线性表(单链表实现)、栈、字符串、多维数组(三元组表存矩阵)、二叉树(二叉链表和顺序表存储)、邻接表存图以及图的遍历、排序 实验报告部分只要求了线性表、栈、多维...
是基于C++编写的代码,包括,数组线性表,链表线性表、双向链表、顺序栈、链栈、链队列,顺序队列,循环队列、KMP算法、二叉树前、中、后、层次遍历(包含递归和非递归)、二叉树前、中线索遍历算法、图的邻接表深、...
是基于C++编写的代码,包括,数组线性表,链表线性表、双向链表、顺序栈、链栈、链队列,顺序队列,循环队列、KMP算法、二叉树前、中、后、层次遍历(包含递归和非递归)、二叉树前、中线索遍历算法、图的邻接表深、...
//初始化函数,申请数组空间,以及初始化数组, //申请成功返回1,否则返回-1 int play (void); //下棋函数,下棋成功返回1,否则返回-1 int back (void); //悔棋函数,悔棋成功返回1,否则返回-1 void print ...
图的数组表示法、图的邻接表表示法、图的遍历、有向图的邻接矩阵表示法 运行完全没有问题,有详细注释
输入顶点和边的数量如:x,y(意为x个点y个边,xy是数字) 顶点输入如例:a回车b回车~~~(输入达到x个点结束) 边输入如下:1,2(此数字代表,邻接表头数组...输入遍历开始顶点:3(此数字代表,邻接表头数组元素序号)
要求建立图的存储结构(邻接表或邻接矩阵),输入任意的一个图,显示图的深度优先搜索遍历路径。 要求建立图的存储结构(邻接表或邻接矩阵),输入任意的一个图,显示图的广度优先搜索遍历路径。 查找 设计一个读入...