《数据结构》实验三报告(无向图邻接表的构造)

实验报告详细介绍了无向图邻接表的构造,包括需求分析、程序设计思路、源代码和运行结果。重点是理解邻接表的存储结构,实现邻接表的建立、显示和操作,如求顶点度数。同时也探讨了邻接矩阵在边查找上的优势。
摘要由CSDN通过智能技术生成

实验内容: 无向图邻接表的构造

一、目的和要求(需求分析):
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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值