实验内容: 无向图邻接表的构造
一、目的和要求(需求分析):
1、掌握邻接表的存储结构以及邻接表的建立和操作。
2、 构造一个无向图的邻接表,要求从键盘输入图的顶点数和图的边数,并显示所构造的邻接表)
实验拓展:1. 构建有向图的邻接表
2. 判断边是否存在
3. 求顶点的度数
二、程序设计的基本思想,原理和算法描述:
首先,定义图的结构,边结点等等在一步步深入,输出度,遍历等等然后在主函数中调用。
邻接表有两种结点结构,一是顶点表结构和边表结构
//定义好顶点表和边表的结构
typedef struct EdgeNode
{
int adjvex;
struct EdgeNode * next;
} EdgeNode;
//顶点表节点结构,一个data用来存储数据,一个firstedge是用来指向边表的第一个节点
typedef struct
{
string data;
EdgeNode * firstedge;
} AdjList;
//定义一个图的结构
typedef struct
{
AdjList adjList[15];
int numVertex,numEdge;
} GraphAdjList;
int local(GraphAdjList G,string val)
{
for(int i=0; i<G.numVertex; i++)
{
if(G.adjList[i].data==val)
return i;
}
return -1;}
四、源程序及注释:
#include<string>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
typedef struct EdgeNode
{
int adjvex;