首页 > 编程语言 >数据结构程序设计(C语言)校园导游系统

数据结构程序设计(C语言)校园导游系统

时间:2024-11-15 17:46:31浏览次数:3  
标签:node 10 20 weight int 导游 C语言 num 数据结构

使用队列以及深度搜索算法,加上dos命令调用图片的校园导游系统

#define  _CRT_SECURE_NO_WARNINGS
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
# include<Windows.h>
struct graph {
	int node_num;  //顶点数
	int edge_num;  //边数
	char node_name[20][50]; //顶点数据,使用二维字符数组存储地点名称
	int records[20];  //用于深搜标记走过的节点,0代表未走过,-1代表已走过
	int weight[20][20];  //邻接矩阵,显示权值
};


struct my_queue {  //用于深搜记录路径的队列
	int data[500];
	int front, rear;  //队首,队尾元素
};


void init_graph(struct graph*& p, int n_num)  //初始化图
{
	p = (graph*)malloc(sizeof(graph));
	if (p == NULL)
	{
		return;
	}
	p->node_num = n_num;
	p->edge_num = 0;  //初始化边数为0
	for (int i = 0; i < p->node_num; i++)
	{
		p->records[i] = 0;  //初始化节点的标记
		for (int j = 0; j < p->node_num; j++)
		{
			p->weight[i][j] = 0;  //初始化每条边的权重为0
		}
	}
}


void print_graph(struct graph* p)//打印图的邻接矩阵
{
	for (int i = 0; i < p->node_num; i++)
	{
		for (int j = 0; j < p->node_num; j++)
		{
			printf("%d  ", p->weight[i][j]); //打印出图
			if (j == p->node_num - 1) printf("\n");
		}
	}
}



void name_strcpy(struct graph*& p, char a[][50], int n_num)  //给图结构体里的节点赋值数据
{
	int i = 0;
	for (i; i < n_num; i++)
	{
		strcpy_s(p->node_name[i], a[i]);
		//printf("%s\n", p->node_name[i]);
	}
}


void quan_juzhen(struct graph*& p)  //输入地图权重数据到邻接矩阵
{
	p->weight[0][1] = 50;
	p->weight[0][6] = 50;
	p->weight[1][0] = 50;
	p->weight[1][2] = 70;
	p->weight[1][4] = 20;
	p->weight[2][1] = 70;
	p->weight[2][3] = 120;
	p->weight[3][2] = 120;
	p->weight[3][4] = 100;
	p->weight[3][5] = 100;
	p->weight[4][1] = 20;
	p->weight[4][3] = 100;
	p->weight[4][5] = 110;
	p->weight[4][7] = 20;
	p->weight[5][3] = 100;
	p->weight[5][4] = 110;
	p->weight[6][0] = 50;
	p->weight[6][8] = 100;
	p->weight[7][4] = 20;
	p->weight[7][9] = 10;
	p->weight[7][10] = 30;
	p->weight[8][6] = 100;
	p->weight[8][12] = 20;
	p->weight[8][13] = 25;
	p->weight[8][9] = 10;
	p->weight[9][7] = 10;
	p->weight[9][8] = 10;
	p->weight[9][13] = 20;
	p->weight[10][7] = 30;
	p->weight[10][11] = 10;
	p->weight[11][10] = 10;
	p->weight[11][14] = 30;
	p->weight[11][16] = 40;
	p->weight[11][15] = 20;
	p->weight[12][8] = 20;
	p->weight[12][13] = 10;
	p->weight[13][8] = 25;
	p->weight[13][9] = 20;
	p->weight[13][12] = 10;
	p->weight[13][14] = 15;
	p->weight[14][13] =

标签:node,10,20,weight,int,导游,C语言,num,数据结构
From: https://blog.csdn.net/luoyinan_CSDN/article/details/143804814

相关文章

  • C语言经典100题 学习笔记(更新中)
    第一题:有1、2、3、4四个数字,能组成多少互不相同且无重复数字的三位数?都是多少?#include<stdio.h>//有1、2、3、4四个数字//能组成多少互不相同且无重复数字的三位数?都是多少?intmain01(){ inta=0; intb=0; intc=0; intcount=0; for(a=1;a<5;a++) {......
  • Redis深入底层数据结构(万字详细)
    RedisRedis基本数据类型Redis支持5种数据类型:string(字符串)hash(哈希)list(列表)set(集合)zset(sortedset:有序集合)Stringstring:一个key对应一个value。string类型是二进制安全的,可以存储任何类型的数据常用命令:get,set,incr,decr,mget等hashhash:一个string类型的field......
  • C语言题目:求平方数(附代码和思路)
    编程思路://做到心中有数,代码看似无数,实则心中有数假设这个整数为X,则有X+100=n*n,X+100+168=m*m;可以得出n与m的关系是m*m-n*n=168;即(m+n)(m-n)=168;所以有设m+n=i,m-n=j;则i*j=168;我们可以使用for循环来遍历筛选i和j的值,条件的控制需要注意168%i==0才能赋值给j......
  • C语言进阶3:字符串+内存函数
    本章重点求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数strncpystrncatstrncmp字符串查找strstrstrtok误信息报告strerror字符操作内存操作memcpymemmovememcmpmemset0.前言:C语言中对字符和字符串的处理很是......
  • 【数据结构副本篇】顺序表 链表OJ
    ......
  • LSM-TREE一种高效的索引数据结构
    LSM-tree主要目标是快速地建立索引。B-tree是建立索引的通用技术,但是,在大并发插入数据的情况下,B-tree需要大量的磁盘随机IO,很显然,大量的磁盘随机IO会严重影响索引建立的速度。特别地,对于那些索引数据大的情况(例如,两个列的联合索引),插入速度是对性能影响的重要指标,而读取相对来说......
  • C语言-指针及变量的概念与使用
    1、指针的概念计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如int占用4个字节,char占用1个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是4......
  • c语言——内存函数
    1.memcpy函数使用和模拟2.memmove函数使用和模拟3.memset函数使用4.memcmp函数使用上一篇博客我给大家一一介绍了字符串相关的函数,那么这一篇我想给大家介绍关于内存方面的函数,内存函数,他是不考虑类型的,他只考虑从内存进行处理的一系列函数1.memcpy函数memcpy是用来......
  • C语言双相循环链表增删查改(带头节点)
    C语言双相循环链表增删查改(带头节点)最后一个节点的next指针指向第一个节点,第一个节点的prev指针指向最后一个节点定义链表节点#include<stdio.h>#include<stdlib.h>//内存管理,malloc(size_tsize)//链表节点结构体typedefstructNode{intdata;s......
  • C语言:数组(一维数组,二维数组,数组越界,数组作为函数参量,冒泡排序)
    1、一维数组的创建和初始化1.1、数组的创建数组是相同类型元素的集合•数组中可以存放1个或者多个数据•数组中存放的数据,类型是相同的数组的创建方式:元素类型自定义数组名(常量表达式)比如:intarr[10]doublearr[5]chararr[8+5]错误写法:intarr[n];......