亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? traingraph.c

?? 全國旅游交通查詢
?? C
字號:
#include"train.h"

status creat_graph(graph_country *l)
{
	FILE *f;
	int n;
	int i=0,k=0;
//	path_node *no;
	path pa;
	char filename[]="f:\\trainGraph.txt";
	if((f=fopen(filename,"r"))==NULL)
	{
		printf("can not open file to read(fscanf):%s\n",filename);
		return ERROR;
	}
//	init_graph(l);
//	fscanf(f,"%d%d",&(l->city_num),&(l->path_num ));
	for (i=0;i<l->city_num ;i++)
	{
		fscanf(f,"%s",l->adj_list[i].city_name );
		insert_city(l,l->adj_list[i].city_name,i );
	}
	for (k=0;k<l->path_num ;k++)
	{
		n=fscanf(f,"%d%d%d",&(pa.ivex),&(pa.jvex) ,&(pa.length));
//		PR("pa.length :%d\n",pa.length);

		if(pa.length >0)	insert_path(l,pa);
	}
	fclose(f);
	/*for (i=0;i<MAXSIZE;i++)
	{
		for (no=l->adj_list [i].firsh_path ->i_link ;no->i_link !=NULL;no=no->i_link )
			PR("%s",l->adj_list [no->pa.ivex ].city_name );
		PR("\n");
	
	}*/
	return OK;
}
status init_graph(graph_country *l)
{
	int i=0;
/*	l=(graph_country*)malloc(sizeof(graph_country));
	if(l==NULL)
	{
		exit(0);
	}*/
	for (i=0;i<MAXSIZE;i++)
	{
		l->adj_list [i].firsh_path=NULL;
//		l->adj_list [i].firsh_path->i_link  =NULL;
//		l->adj_list [i].firsh_path->j_link =NULL;
	}
	l->city_num =25;
	l->path_num =30;
	return OK;
}

status insert_city(graph_country *l,char *city_name,int i)
{
	strcpy(l->adj_list[i].city_name ,city_name);
//	PR("insert %s,%d\n",city_name,i);
	return OK;
}

status insert_path(graph_country *l,path pa)
{
	path_node_p q;
	q=(path_node_p)malloc(sizeof(path_node));
	if(q==NULL)
	{
		exit(0);
	}
	q->pa .ivex =pa.ivex ;
	q->pa .jvex =pa.jvex ;
	q->pa .length =pa.length ;
/*	q->i_link=NULL;
//	q->j_link =NULL;
	q->i_link =l->adj_list [pa.ivex ].firsh_path  ;
	l->adj_list [pa.ivex ].firsh_path  =q;
	q->j_link =l->adj_list [pa.jvex ].firsh_path  ;
	l->adj_list [pa.jvex ].firsh_path  =q;*/
	q->i_link =l->adj_list [pa.ivex ].firsh_path ;
	q->j_link =l->adj_list [pa.jvex ].firsh_path  ;
	l->adj_list [pa.ivex ].firsh_path =l->adj_list [pa.jvex ].firsh_path =q;
	return OK;
}

void init_p(path_city *pa)
{
	//初始化為一條空路徑
	pa->len =0;
}

void init_set(p_city *p)
{
	int i;
	p->num =0;
	for(i=0;i<MAXSIZE;i++)
	{
		p->citys[i][0]='\0';
	}
}

void copy_path(path_city *pa1,path_city *pa2)
{
	//復制路徑
	int i;
	for (i=0;i<pa2->len ;i++)
	{
		pa1->path [i].vx =pa2->path [i].vx ;
		pa1->path [i].vy =pa2->path [i].vy ;
	}
	pa1->len =pa2->len ;
}

void insert_p(path_city *pa,int v,int w)
{
	//在pa中插入一條邊(v,w)
	pa->path [pa->len ].vx =v;
	pa->path [pa->len ].vy =w;
	pa->len ++;
//	PR("insert (%d,%d)\n",v,w);
}

void out_path(graph_country l,path_city pa,p_city *citys)
{
	//將路徑轉換為城市名稱的序列
	int m=0,i;
	char city_name[9];

	for(i=0;i<pa.len ;i++)
	{
		get_city(l,pa.path [i].vx ,city_name);
		strcpy(citys->citys[m++], city_name);
		PR("%s\n",city_name);
	}
//	PR("%s\n",city_name);
	
	get_city(l,pa.path[pa.len-1].vy ,city_name);
//	PR("pa.len:%d\n",pa.len );
	strcpy(citys->citys[m] ,city_name);
	citys->num =m;
//	PR("//將路徑轉換為城市名稱的序列完成\n");
}

void get_city(graph_country l,int i, char *city_name)
{
	//以city_name返回鄰接多重表中序號為i頂點的城市名(l.adj_list [i].city_name )
	strcpy(city_name,l.adj_list [i].city_name );
}

void putin_set(char *city_name,p_city *p,int st)
{
	strcpy(p->citys [st],city_name);
	p->num ++;
}
	
path_node *first_path(graph_country l,int vi)
{
	//返回圖中依附于頂點的第一條這的指針:l.adj_list [vi].firsh_path
	path_node *p;
	p=l.adj_list [vi].firsh_path ;
	return p;
}

path_node *next_path(graph_country g,int vi,path_node p,int *vj,path_node *q)
{
	//以vj返回圖g中依附于頂點vi的一條邊(由指針p所指)的另一端點;
	//以q返回圖中依附于頂點vi且相對于指針p所指邊的下一條邊
	if(p.pa.ivex ==vi)
	{
		q=p.i_link ;
		*vj=p.pa .jvex ;
	}
	else 
	{
		q=p.j_link ;
		*vj=p.pa .ivex ;
	}
	return q;
}

int minnal(int *dist,p_city ss)
{
	//求dist[]中的最小邊
	int min=-1,i,temp;
	temp =maxint;
	for(i=0;i<MAXSIZE;i++)
	{
		if(ss.citys [i][0]=='\0')
		{
			if(temp>dist[i])
			{
				min=i;
				temp=dist[i];
			}
		}
	}//end for
	if(min!=-1)
	{
//		PR("求dist[]中的最小邊 min:%d\n",min);
		return min;
	}
	else	
	{
		PR("求最小邊時發生錯誤!\n");
		return -1;
	}
}

void shortest_path(graph_country g,int st,int nd,int *pathlength,p_city *path_info)
{
	//利用迪杰斯特拉算法的基本思想求圖g中從頂點st到頂點nd的一條最短路徑
	//最短路徑path_info及其路徑長度path_lenth
	int dist[MAXSIZE];
	int i=0,v,w;
	path_node  q;
	int found,min;
	p_city ss;
	int adjvex;
	path_node *p,*qq;
	path_city path[MAXSIZE];
	for (i=0;i<g.city_num ;i++)
	{
		dist[i]=maxint;
		init_p(&path[i]);
	}
	p=first_path(g,st);
	while(p!=NULL)//初始化dist數組,檢測依附于起始邊的每一條邊
	{
		qq=next_path(g,st,*p,&adjvex,&q);
		dist[adjvex]=p->pa.length ;
		insert_p(&path[adjvex],st,adjvex);
		p=qq;
	}
	found =FALSE;
	init_set(&ss);
	putin_set(g.adj_list[st].city_name ,&ss,st);
	while(!found)
	{
		min=minnal(dist,ss);
			//在所有尚未求得最短路徑的頂點中求使dist[i]取小值的i值
		if(min==nd)		found= TRUE;
		else 
		{
			v=min;
			putin_set(g.adj_list[v].city_name,&ss,v);
			p=first_path(g,v);
			while(p!=NULL)//檢測依附于v的每一條尚未訪問的邊
			{
				qq=next_path(g,v,*p,&w,qq);
				if((ss.citys [w][0]=='\0')&&((dist[v]+p->pa .length )<dist[w]))
				{
					dist[w]=dist[v]+p->pa.length ;
					copy_path(&path[w],&path[v]);
					insert_p(&path[w],v,w);
				}
				p=qq;
			}//while(p!=NULL)
		}//else
	}//while(!found)
	pathlength=&dist[nd];
	PR("總路徑長度 :%d\n",dist[nd]);
	out_path(g,path[nd],&ss);
}













?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合男人的天堂| 中文字幕欧美激情| 色八戒一区二区三区| 粉嫩蜜臀av国产精品网站| 蜜臀久久99精品久久久久久9| 亚洲国产视频网站| 亚洲v日本v欧美v久久精品| 亚洲美女电影在线| 亚洲无线码一区二区三区| 夜夜嗨av一区二区三区网页| 亚洲一区在线视频观看| 亚洲高清三级视频| 麻豆精品国产传媒mv男同| 国产在线视频一区二区三区| 国产一二三精品| 国产精品一区二区久激情瑜伽| 国产一区二区在线视频| 国产精品996| 99riav久久精品riav| 欧美性受xxxx黑人xyx| 欧美一区二区在线看| 久久影音资源网| 国产精品伦一区二区三级视频| 亚洲素人一区二区| 五月天国产精品| 国产一区二区三区电影在线观看| 丁香天五香天堂综合| 色偷偷久久一区二区三区| 欧美日韩国产综合一区二区| 日韩精品在线一区二区| 国产拍欧美日韩视频二区| 亚洲一区二区在线视频| 麻豆成人av在线| 99精品久久久久久| 欧美一区二区精品久久911| 久久久久久久久久久电影| 亚洲最色的网站| 精品一区二区在线视频| 一本大道久久a久久综合婷婷| 日韩一区二区视频| 成人欧美一区二区三区1314| 日韩二区在线观看| caoporn国产精品| 在线成人高清不卡| 亚洲日本一区二区| 久久99精品久久久久久动态图| jlzzjlzz欧美大全| 精品日韩在线一区| 亚洲综合自拍偷拍| 成人国产一区二区三区精品| 在线综合+亚洲+欧美中文字幕| 欧美国产日韩亚洲一区| 美腿丝袜在线亚洲一区| 一本色道久久综合精品竹菊| 欧美精品一区二区三区很污很色的 | 日本va欧美va欧美va精品| 国产精品18久久久久久久久久久久| 日本韩国精品一区二区在线观看| 2024国产精品视频| 日本不卡的三区四区五区| 欧美色窝79yyyycom| 日本一区二区三级电影在线观看| 蜜臀av国产精品久久久久| 在线视频你懂得一区| 国产亚洲一区二区三区在线观看| 免费成人av在线| 69精品人人人人| 五月综合激情婷婷六月色窝| 91福利在线免费观看| 亚洲欧洲精品成人久久奇米网| 国产精品123| 精品人在线二区三区| 免费高清成人在线| 日韩欧美一级二级三级久久久| 久久精品视频在线免费观看| 看电影不卡的网站| 欧美二区三区的天堂| 亚洲第四色夜色| 911国产精品| 毛片av中文字幕一区二区| 日韩色在线观看| 精品中文字幕一区二区| 日韩三级伦理片妻子的秘密按摩| 日韩黄色在线观看| 日韩欧美亚洲国产另类| 捆绑紧缚一区二区三区视频| 精品国产污网站| 国产成a人无v码亚洲福利| 国产精品免费久久| 91玉足脚交白嫩脚丫在线播放| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| jlzzjlzz国产精品久久| 亚洲制服欧美中文字幕中文字幕| 欧美中文字幕一二三区视频| 午夜精品一区二区三区电影天堂 | 日本视频在线一区| 欧美哺乳videos| 成人午夜在线免费| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久国产午夜精品| 不卡的av在线播放| 亚洲一区欧美一区| 精品久久免费看| aaa亚洲精品| 美女www一区二区| 国产精品久久国产精麻豆99网站| 色一区在线观看| 麻豆一区二区三| 中文字幕中文字幕在线一区 | 99国产精品一区| 天堂一区二区在线免费观看| xnxx国产精品| 在线观看国产日韩| 狠狠久久亚洲欧美| 日韩码欧中文字| 欧美一区二区三区四区高清 | 91丨porny丨首页| 日韩成人伦理电影在线观看| 国产欧美一区二区三区鸳鸯浴 | 亚洲色图视频免费播放| 欧美久久久久中文字幕| 国产宾馆实践打屁股91| 亚洲国产欧美一区二区三区丁香婷| 欧美不卡123| 欧美日韩一区二区三区不卡 | 亚洲卡通欧美制服中文| 欧美zozozo| 91久久奴性调教| 国产成人午夜电影网| 亚洲mv在线观看| 亚洲欧洲国产专区| 精品免费视频.| 欧美福利视频导航| 99re这里都是精品| 国产成人三级在线观看| 天天操天天色综合| 亚洲激情欧美激情| 国产视频不卡一区| 日韩精品一区二区三区视频 | 91精品婷婷国产综合久久性色 | 在线看国产一区| 国产成人精品一区二| 精品无码三级在线观看视频| 亚洲成人av一区| 亚洲综合免费观看高清完整版在线 | 国产精品国产三级国产aⅴ无密码| 欧美剧在线免费观看网站| 91偷拍与自偷拍精品| 成人精品高清在线| 国产91丝袜在线播放0| 精品制服美女久久| 日本麻豆一区二区三区视频| 亚洲一区二区黄色| 亚洲线精品一区二区三区| 一区二区三区日韩| 日韩美女视频19| 亚洲欧美国产高清| 亚洲伦理在线精品| 国产精品一区在线| 日韩欧美在线网站| 日韩不卡一区二区| 日韩综合在线视频| 日产国产欧美视频一区精品| 男人的j进女人的j一区| 奇米影视一区二区三区小说| 久久99精品国产.久久久久久| 美女视频免费一区| 国产一区二区在线观看视频| 国产一区 二区 三区一级| 成人一区二区三区视频| 91在线视频播放地址| 欧美亚洲国产一区二区三区| 欧美在线影院一区二区| 欧美一级在线观看| 欧美va天堂va视频va在线| 日本一区二区综合亚洲| 亚洲视频在线观看三级| 午夜精品久久久久久久久| 日韩和的一区二区| 国产一区二区三区香蕉 | 国产自产2019最新不卡| 国产91露脸合集magnet| 色94色欧美sute亚洲线路一久| 欧美日韩一区高清| 久久先锋影音av鲁色资源网| 国产精品不卡一区二区三区| 亚洲午夜影视影院在线观看| 老司机精品视频导航| 国产一区 二区 三区一级| 97国产一区二区| 91精品蜜臀在线一区尤物| 国产精品视频你懂的| 亚洲成av人片观看| 国产.欧美.日韩| 在线成人小视频| 亚洲精品视频在线观看免费| 另类小说一区二区三区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美二区乱c少妇| 亚洲色图欧洲色图婷婷|