【算法】无向图的创建和遍历

本文深入探讨了无向图的构建过程,包括顶点与边的添加,以及深度优先搜索和广度优先搜索两种遍历策略的详细步骤。通过实例解析,帮助读者理解如何在实践中应用这些算法。
摘要由CSDN通过智能技术生成

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
#define maxSize (100)
typedef struct ArcNode{//弧结点
 int info;//弧信息
 struct ArcNode* nextarc;//指向下一个弧结点的指针
 int adjvex;//弧指向结点在顺序表中的序号
}ArcNode;

typedef struct VNode{//定点结点
 char data;//定点结点值
 ArcNode*firstarc;//指向的第一条弧结点
}VNode;

typedef struct AGraph{
 VNode adjlist[maxSize];//顶点列表
 int e, n;//弧和顶点数目
}AGraph;

int adjloction(AGraph*G, char v)//查询顶点值为v的顶点在顺序链表中的位置
{
 for (int i = 0; i < G->n; ++i)
  if (G->adjlist[i].data == v)
   return i;
 return -1;
}
void CreateAGraph(AGraph *&G)//创建图
{
 G = (AGraph*)malloc(sizeof(AGraph));
 cout << "输入顶点数和弧数:" << endl;
 cin >> G->n >> G->e;

 cout << "输入顶点:" << endl;
 for (int i = 0; i < G->n; ++i)
 {
  cin >> G->adjlist[i].data;
  G->adjlist[i].firs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值