主页 > 旅游景点 > 数据结构c程序设计

数据结构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); //用户输入,查找任意两个景点间的最短路径。

}