数据结构c程序设计
一、数据结构c程序设计
1、汉诺塔
#include <stdio.h>
int hanoi(int A, int B, int C, int numbers)
{
if(numbers<=1)
{
printf(%d->%d\n, A, C);
}else{
hanoi(A, C, B, numbers-1);
printf(%d->%d\n, A, C);
hanoi(B, A, C, numbers-1);
}
return 0;
}
二、在同程网上怎么查到旅游景点导游路线
打开www.17u.cn 找到景点门票专栏,打开后左边有个搜索栏。 在搜索栏中搜索下想去的地方或者景点名字,就会有显示有合作的景点的。到时候打开想去的景点,里面会有相关的购票须知的,到时候可以查看下,顺便可以看下游客点评和景区介绍的。页面最下面还有相关的出行线路可供参考的~
三、出门旅游必备旅游软件?自助游上什么应用?
需要的软件有:
一、途牛旅游
它提供多达2万条跟团旅游线路的查询预订功能,随身查看详细的特色介绍、行程安排、资费说明、用户反馈等信息。无论是你想周边旅游,还是国内旅游,甚至是境外旅游,途牛都能给你提供合适的参考线路。
二、墨迹天气
出门在外,天气情况一定要多关注,墨迹天气就是一个不错的选择。它提供了丰富多彩的桌面天气皮肤,能够用最醒目、最实用的方式,时刻为你提供最新的天气实况。在天气有大的变化时,如降雨天气或高温预警,它也会在通知栏给予用户最及时的提醒。
三、百度地图
陌生地方不识路,没关系,百度地图来帮忙。百度地图,拥有强大的路线查询及规划能力,提供公交、驾车、步行三种出行方式;帮助您快速定位,并任意查找地点、商家、公交站点,以及周边生活信息。另外,还有实时路况、离线收藏、截图、测距、流量监控等各种实用工具。
四、去哪儿旅行
去哪儿旅行,目前市场上最炫酷的旅游应用,最佳的用户体验,特价机票酒店在线预订、飞机起落状态一览无遗、机票价格趋势实时查看,身边酒店预订查询、每日6点后尾房抢订、火车查询、身边景点、本地旅游团购,出行最好帮手“机票预订、机场航班 、度假旅行、折扣酒店 、火车路线、温泉团购、优惠网购、打折信息”应有尽有。
四、C语言高手!!帮忙写个最短路径程序!!!!
这是我们的一个实验,你可以参考一下
一、 需求分析
【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1) 设计你所有学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2) 为来访客人提供图中任意景点相关信息的查询。
(3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
【测试数据】
由读者根据实际情况指定。
二、概要设计
本次实验中运用到的数据类型有:图,顶点,边结点
typedef struct edgenode
{
int adjvex; //临接点序号
int length; //道路长度
char name[20]; //景点名称
char info[100]; //景点详细信息
struct edgenode *next;
}edgenode, *Node ;
typedef struct
{
char data[20]; //存储景点的名称.
char str[100]; //具体的介绍此景点
struct edgenode *link; //指向下一个景点
}vexnode; //景点及其信息.
typedef struct Edge
{
int lengh; //边的权值,表示路径长度.
int ivex, jvex; //边的两端顶点号
struct Edge *next; //指向下一条边
} EdgeType; //边及其信息.
typedef struct
{
int num; //顶点编号
char data[20]; //顶点名称
} vertex;
typedef struct{
vertex vexs[MAX]; //顶点集合
int edges[MAX][MAX]; //邻接矩阵
}adjmax;
基本操作:
void fun();
//操作结果:功能说明并显示所有景点
void creatgraph(vexnode g[],int &n, EdgeType e[],adjmax &adj);
//操作结果:创建校园图
void travgraph(vexnode g[],int n,adjmax adj);
//初始条件:已知邻接表adj和顶点g及其数目n
//操作结果:查找指定景点信息
void Ppath(int path[][MAX],int i,int j,vexnode g[]);
//操作结果:寻找最短路径
void Dispath(int A[][MAX],int path[][MAX],int n,vexnode g[]);
//初始条件:已知顶点g和数目n及其权值
//操作结果:显示最短路径
void Floyd(adjmax adj,int n,vexnode g[]);
//初始条件:已知邻接表adj和顶点g
//操作结果:Floyd算法计算所有两个景点间最短路径
三、详细设计
1、---------main()---------
char choice;
int n = 0; / /景点数目
vexnode g[MAX]; //保存顶点及其信息
EdgeType e[MAXedg]; //保存边及其信息
adjmax adj; //保存边和定点
creatgraph(g,n,e,adj); //建立校园导游图
while(1)
{
do{
system(cls);
fun(); //功能说明
printf(请输入所要进行的操作:);
choice=getch();
printf(\n); }while(choice!='s'&&choice!='S'&&choice!='v'&&choice!='V'&&choice!='Q'&&choice!='q');
switch(choice)
{
case('s'):
case('S'): Floyd(adj,n,g); //查找最短路径
break;
case('v'):
case('V'):travgraph(g,n,adj); //景点查询
break;
case('q'):
case('Q'):return; //结束程序
}
}
2、------- travgraph()---------
void travgraph(vexnode g[],int n,adjmax adj)
{
int i = 1,flag = 1,num; //num存储要查询的景点的序号
char ch;
edgenode *p;
printf(请输入您要查询的景点序号:\n);
scanf(%d,&num);
while(i <= n) //遍历邻接表
{
p = g[i].link;
if(i == num && flag == 1)
{
printf(此景点的名称是: %s\n,g[i].data);
printf(此景点的介绍是: %s\n,g[i].str);
printf(是否继续? Y/N);
ch=getch();
printf(\n);
if(ch == 'Y' || ch == 'y') //继续
{
flag = 1;
i = 1;
printf(请输入您要查询的景点序号:\n);
scanf(%d,&num);
getchar();
}
else
flag = 0; //不继续
}
else
i++;
}
}3、------- Floyd()---------
//Floyd算法计算所有两个景点间最短路径
void Floyd(adjmax adj,int n,vexnode g[])
{
int A[MAX][MAX],path[MAX][MAX]; //A是路径长度,path是路径。
int i,j,k;
for(i = 1; i <= n; i++) //初始化
for(j = 1; j <= n; j++)
{
A[i][j] = adj.edges[i][j]; //i j之间长度
if(i == j)
{
A[i][j] = 0;
}
path[i][j] = -1; //初始化
}
for(k = 1; k <= n; k++)
for(i = 1; i <= n; i++)
for(j = 1; j <= n; j++)
{
if(A[i][j] > (A[i][k] + A[k][j]))
{
A[i][j] = A[i][k]+A[k][j]; //修改最短路径长度值
path[i][j] = k; //将最短路径的节点号保存
}
}
Dispath(A,path,n,g); //用户输入,查找任意两个景点间的最短路径。
}