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

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

?? cpp1.cpp

?? Dijkstra算法
?? CPP
字號:
/* Dijkstra.c 

Copyright (c) 2002, 2006 by ctu_85 
All Rights Reserved. 
*/ 
#include "stdio.h" 
#include "malloc.h" 
#define maxium 32767 
#define maxver 9 /*defines the max number of vertexs which the programm can handle*/ 
#define OK 1 
struct Point 
{ 
char vertex[3]; 
struct Link *work; 
struct Point *next; 
}; 
struct Link 
{ 
char vertex[3]; 
int value; 
struct Link *next; 
}; 
struct Table /*the workbannch of the algorithm*/ 
{ 
int cost; 
int Known; 
char vertex[3]; 
char path[3]; 
struct Table *next; 
}; 
int Dijkstra(struct Point *,struct Table *); 
int PrintTable(int,struct Table *); 
int PrintPath(int,struct Table *,struct Table *); 
struct Table * CreateTable(int,int); 
struct Point * FindSmallest(struct Table *,struct Point *);/*Find the vertex which has the smallest value reside in the table*/ 
int main() 
{ 
int i,j,num,temp,val; 
char c; 
struct Point *poinpre,*poinhead,*poin; 
struct Link *linpre,*linhead,*lin; 
struct Table *tabhead; 
poinpre=poinhead=poin=(struct Point *)malloc(sizeof(struct Point)); 
poin->next=NULL; 
poin->work=NULL; 
restart: 
printf("Notice:if you wanna to input a vertex,you must use the format of number!\n"); 
printf("Please input the number of points:\n"); 
scanf("%d",&num); 
if(num>maxver||num<1||num%1!=0) 
{ 
printf("\nNumber of points exception!"); 
goto restart; 
} 
for(i=0;i<num;i++) 
{ 
printf("Please input the points next to point %d,end with 0:\n",i+1); 
poin=(struct Point *)malloc(sizeof(struct Point)); 
poinpre->next=poin; 
poin->vertex[0]='v'; 
poin->vertex[1]='0'+i+1; 
poin->vertex[2]='\0'; 
linpre=lin=poin->work; 
linpre->next=NULL; 
for(j=0;j<num-1;j++) 
{ 
printf("The number of the %d th vertex linked to vertex %d:",j+1,i+1); 
scanf("%d",&temp); 
if(temp==0) 
{ 
lin->next=NULL; 
break; 
} 
else 
{ 
lin=(struct Link *)malloc(sizeof(struct Link)); 
linpre->next=lin; 
lin->vertex[0]='v'; 
lin->vertex[1]='0'+temp; 
lin->vertex[2]='\0'; 
printf("Please input the value betwixt %d th point towards %d th point:",i+1,temp); 
scanf("%d",&val); 
lin->value=val; 
linpre=linpre->next; 
lin->next=NULL; 
} 
} 
poinpre=poinpre->next; 
poin->next=NULL; 
} 
printf("Please enter the vertex where Dijkstra algorithm starts:\n"); 
scanf("%d",&temp); 
tabhead=CreateTable(temp,num); 
Dijkstra(poinhead,tabhead); 
PrintTable(temp,tabhead); 
return OK; 
} 
struct Table * CreateTable(int vertex,int total) 
{ 
struct Table *head,*pre,*p; 
int i; 
head=pre=p=(struct Table *)malloc(sizeof(struct Table)); 
p->next=NULL; 
for(i=0;i<total;i++) 
{ 
p=(struct Table *)malloc(sizeof(struct Table)); 
pre->next=p; 
if(i+1==vertex) 
{ 
p->vertex[0]='v'; 
p->vertex[1]='0'+i+1; 
p->vertex[2]='\0'; 
p->cost=0; 
p->Known=0; 
} 
else 
{ 
p->vertex[0]='v'; 
p->vertex[1]='0'+i+1; 
p->vertex[2]='\0'; 
p->cost=maxium; 
p->Known=0; 
} 
p->next=NULL; 
pre=pre->next; 
} 
return head; 
} 
int Dijkstra(struct Point *p1,struct Table *p2) /* Core of the programm*/ 
{ 
int costs; 
char temp; 
struct Point *poinhead=p1,*now; 
struct Link *linna; 
struct Table *tabhead=p2,*searc,*result; 
while(1) 
{ 
now=FindSmallest(tabhead,poinhead); 
if(now==NULL) 
break; 
result=p2; 
result=result->next; 
while(result!=NULL) 
{ 
if(result->vertex[1]==now->vertex[1]) 
break; 
else 
result=result->next; 
} 
linna=now->work->next; 
while(linna!=NULL) /* update all the vertexs linked to the signed vertex*/ 
{ 
temp=linna->vertex[1]; 
searc=tabhead->next; 
while(searc!=NULL) 
{ 
if(searc->vertex[1]==temp)/*find the vertex linked to the signed vertex in the table and update*/ 
{ 
if((result->cost+linna->value)<searc->cost) 
{ 
searc->cost=result->cost+linna->value;/*set the new value*/ 
searc->path[0]='v'; 
searc->path[1]=now->vertex[1]; 
searc->path[2]='\0'; 
} 
break; 
} 
else 
searc=searc->next; 
} 
linna=linna->next; 
} 
} 
return 1; 
} 
struct Point * FindSmallest(struct Table *head,struct Point *poinhead) 
{ 
struct Point *result; 
struct Table *temp; 
int min=maxium,status=0; 
head=head->next; 
poinhead=poinhead->next; 
while(head!=NULL) 
{ 
if(!head->Known&&head->cost<min) 
{ 
min=head->cost; 
result=poinhead; 
temp=head; 
status=1; 
} 
head=head->next; 
poinhead=poinhead->next; 
} 
if(status) 
{ 
temp->Known=1; 
return result; 
} 
else 
return NULL; 
} 
int PrintTable(int start,struct Table *head) 
{ 
struct Table *begin=head; 
head=head->next; 
while(head!=NULL) 
{ 
if((head->vertex[1]-'0')!=start) 
PrintPath(start,head,begin); 
head=head->next; 
} 
return OK; 
} 
int PrintPath(int start,struct Table *head,struct Table *begin) 
{ 
struct Table *temp=begin->next,*p,*t; 
p=head; 
t=begin; 
if((p->vertex[1]-'0')!=start&&p!=NULL) 
{ 
while(temp->vertex[1]!=p->path[1]&&temp!=NULL) 
temp=temp->next; 
PrintPath(start,temp,t); 
printf("%s",p->vertex); 
} 
else 
if(p!=NULL) 
printf("\n%s",p->vertex); 
return OK; 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品噜噜噜成人88aⅴ| 亚洲欧洲精品一区二区三区| 日本不卡一二三| 日韩一区国产二区欧美三区| 免费成人在线视频观看| 欧美草草影院在线视频| 国产精品综合视频| 亚洲欧洲日产国产综合网| 色8久久精品久久久久久蜜| 一区二区三区免费观看| 91.com视频| 国产精品一区二区无线| 国产精品久久久久aaaa| 欧美视频中文字幕| 日本伊人色综合网| 久久久精品免费免费| 91蝌蚪porny九色| 亚洲国产wwwccc36天堂| 日韩欧美一级片| 成人在线综合网站| 午夜婷婷国产麻豆精品| 精品久久久久久综合日本欧美| 国产成人综合在线播放| 一区二区高清在线| 久久亚区不卡日本| 在线免费观看日本一区| 久久疯狂做爰流白浆xx| 亚洲精品一二三区| 精品欧美乱码久久久久久1区2区| 成人av免费观看| 日本欧美一区二区| 亚洲另类一区二区| 精品乱人伦小说| 91蝌蚪国产九色| 国模一区二区三区白浆| 亚洲综合精品久久| 国产欧美1区2区3区| 欧美日韩视频一区二区| 成人动漫精品一区二区| 日韩av电影天堂| 亚洲黄色av一区| 久久久久久久综合| 欧美精品久久99久久在免费线 | 图片区小说区国产精品视频| 久久综合色综合88| 这里只有精品视频在线观看| 不卡影院免费观看| 久久不见久久见免费视频1| 亚洲女同女同女同女同女同69| 精品久久久久久久久久久久久久久 | 国产一区二区久久| 婷婷国产v国产偷v亚洲高清| 成人免费在线视频| 久久综合久久久久88| 欧美日韩精品专区| 色狠狠色噜噜噜综合网| 成人免费观看av| 久久99久国产精品黄毛片色诱| 亚洲综合av网| 最新国产の精品合集bt伙计| 久久久久国产精品厨房| 日韩欧美亚洲一区二区| 欧美丝袜丝交足nylons| 日本韩国视频一区二区| 成+人+亚洲+综合天堂| 成人在线综合网| 大桥未久av一区二区三区中文| 精品亚洲成a人| 久久精品国产99国产精品| 日韩精品欧美精品| 五月天国产精品| 午夜激情综合网| 亚洲国产中文字幕在线视频综合| 亚洲男人天堂一区| 亚洲欧美日韩在线| 亚洲愉拍自拍另类高清精品| 亚洲伦理在线免费看| 亚洲免费观看高清| 一区二区视频在线| 夜夜精品视频一区二区| 亚洲国产精品一区二区久久恐怖片| 亚洲欧美另类久久久精品| 亚洲欧美一区二区不卡| 一区二区不卡在线视频 午夜欧美不卡在| 国产精品久线在线观看| 18欧美亚洲精品| 亚洲色欲色欲www| 亚洲自拍偷拍图区| 日韩av电影一区| 韩国成人在线视频| 成人黄色在线看| 在线视频一区二区三区| 欧美精品粉嫩高潮一区二区| 欧美一区二区三区在线观看| 欧美成人综合网站| 国产日韩成人精品| 亚洲欧美一区二区视频| 亚洲成av人片| 国产在线播放一区二区三区| jizz一区二区| 欧美在线免费播放| 精品国产一区二区三区久久影院| 欧美国产禁国产网站cc| 国产精品的网站| 亚洲综合精品久久| 精品一区二区三区在线观看国产 | 中文字幕色av一区二区三区| 亚洲午夜免费电影| 久久99精品久久久久久久久久久久 | 日韩视频免费观看高清在线视频| 久久青草欧美一区二区三区| 亚洲欧美在线视频| 日本欧美韩国一区三区| 国产91露脸合集magnet| 欧洲亚洲精品在线| 久久蜜桃av一区精品变态类天堂 | 18涩涩午夜精品.www| 日韩1区2区3区| av色综合久久天堂av综合| 欧美日韩国产综合一区二区三区| 26uuu久久天堂性欧美| 亚洲男人都懂的| 国产一区欧美二区| 欧美日韩一区成人| 久久久91精品国产一区二区三区| 亚洲精品高清在线| 国产一区二区三区电影在线观看| 一本久久a久久免费精品不卡| 精品欧美久久久| 一区二区三区丝袜| 国产成人小视频| 欧美一区二区三级| 亚洲六月丁香色婷婷综合久久| 国产又粗又猛又爽又黄91精品| 91福利视频久久久久| 国产亚洲人成网站| 蜜臀a∨国产成人精品| 91成人免费电影| 国产精品福利影院| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产成人在线视频网站| 欧美日韩精品一区二区三区蜜桃 | 国产盗摄一区二区三区| 日韩欧美自拍偷拍| 亚洲一区二区3| 成人短视频下载| 久久精品网站免费观看| 久久精品久久综合| 欧美一区二区三区在线观看视频 | 中文字幕中文在线不卡住| 黑人巨大精品欧美黑白配亚洲| 3751色影院一区二区三区| 亚洲美女屁股眼交| 成人激情文学综合网| 久久精品人人做人人爽97| 老司机精品视频一区二区三区| 欧美日韩精品一二三区| 亚洲综合精品久久| 欧美日韩一区久久| 亚洲成人午夜影院| 欧美视频一区二区三区在线观看 | 奇米色一区二区| 7777精品伊人久久久大香线蕉经典版下载| 亚洲人快播电影网| 日本乱人伦aⅴ精品| 亚洲男女一区二区三区| 91丨porny丨国产入口| 中文成人av在线| 成人av手机在线观看| 中文字幕五月欧美| 91福利国产精品| 亚洲国产精品久久人人爱| 欧美三级电影网站| 午夜天堂影视香蕉久久| 日韩欧美视频在线| 国精产品一区一区三区mba视频| 精品成人一区二区三区四区| 久久精品国产**网站演员| 精品国产一区二区三区久久久蜜月 | 中文字幕一区三区| 色哟哟国产精品免费观看| 亚洲精品中文字幕乱码三区 | 九九九久久久精品| 久久婷婷综合激情| 成人黄色免费短视频| 亚洲欧美日韩精品久久久久| 色婷婷亚洲综合| 爽好多水快深点欧美视频| 欧美一级日韩不卡播放免费| 久久69国产一区二区蜜臀| 久久久99久久| 色欧美88888久久久久久影院| 亚洲国产精品一区二区久久恐怖片| 在线播放视频一区| 国产精品亚洲第一区在线暖暖韩国| 欧美激情一区二区在线| 欧美做爰猛烈大尺度电影无法无天| 午夜精品福利视频网站| 国产亚洲美州欧州综合国| 色老汉av一区二区三区|