神秘国度

本文探讨了神秘国度的相关主题,并详细分析了递归及优化后的非递归算法实现,旨在深入理解这两种算法在解决特定问题时的效率与应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、神秘国度

2、实现代码

递归版本:

//神秘国度的爱情故事
#include <iostream>
using namespace std;
#define MVNum 500				    			//最大顶点数
typedef int VerTexType;						//假设顶点的数据类型为字符型 
typedef int ArcType;                 			//假设边的权值类型为整型 

//-------------图的邻接矩阵-----------------
typedef struct {
   
	VerTexType *vexs = new int[MVNum];  //顶点表
	ArcType **arcs = new int*[MVNum];	//邻接矩阵 
	int vexnum;                			//图的当前点数
}Graph;
void pp(Graph &G) {
   
	for (int i = 0; i < MVNum; i++) {
   
		G.arcs[i] = new int[MVNum];
	}
}
bool *visited = new bool[MVNum];           					//访问标志数组,其初值为"false" 
int isc, isb,tc= 0;
//int back;
//确定点v在G中的位置
int LocateVex(Graph G, VerTexType v) {
   
	for (int i = 0; i < G.vexnum; ++i)
		if (G.vexs[i] == v)
			return i;
	return -1;
}

//采用邻接矩阵表示法,创建无向网G
void CreateUDN(Graph &G) {
   
	int i, j, k;
	cout << "请输入神秘国度里村子的个数";
	cin >> G.vexnum;							//输入总顶点数,总边数
	cout << endl;

	for (int i = 0; i < G.vexnum; ++i)	//初始化点的信息
		G.vexs[i] = i;
	for (int i = 0; i < G.vexnum; ++i)		//初始化邻接矩阵,边的权值均置为0
		for (int j = 0; j < G.vexnum; ++j)
			G.arcs[i][j] = 0;

	cout << "输入边依附的顶点,如a b" << endl;
	for (k = 0; k < G.vexnum - 1; ++k) {
   								//构造邻接矩阵 
		VerTexType v1, v2;
		cout << "请输入第" << (k + 1) << "条边依附的顶点:";
		cin >> v1 >> v2;										//输入一条边依附的顶点及权值
		i = LocateVex(G, v1);  j 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值