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

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

?? ret.cpp

?? 實現最小生成樹問題,在N個城市之間尋找最短路徑
?? CPP
字號:
#include<stdio.h>
#include<iostream.h>
#include<malloc.h>
#include<conio.h>
#include<stdlib.h>


#define MAX_V 100
#define MAX 10
#define TURE 1
#define FALSE 0


//城市的名稱
typedef struct{
	int vertex1;
	int vertex2;
	int weight;  //城市的距離
    int edge_deleted;
}Edge;         //兩城市間的相關信息
			 
char vex[MAX][MAX];

Edge E[MAX_V];

int total_vertex;  //頂點數  城市的數量

int total_edge;   //邊數  兩城市的連線數

int adjmatrix[MAX_V][MAX_V];   //以矩陣的形式來表示城市的關系

void kruskal();  //Kruskal算法

void addEdge(Edge);  //用來存入邊

void build_adjmatrix();  //用城市的信息存入文件

Edge mincostEdge();  //用來求最小的邊

void showEdge();   //用來初始時的顯示

void prim(int u);   //prim算法

int minimum();   //Prim算法中求最小邊的點

void print()      // 界面輸出
{
	cout<<"\t\t#######################################\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t  數據結構程序設計\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t  本程序由湯徐盛 何學瑾 蔡慧鋒完成\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t\t#######################################\n";
}

struct{
	int adjvex;
	int lowcost;
}closedge[MAX_V];  //用定義頂點與距離

void main()    //主函數
{
	printf("\t\t\t數據結構程序設計\n");
	printf("\n\n");
	cout<<"\t\t#######################################\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t  數據結構程序設計\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t  本程序由湯徐盛 何學瑾 蔡慧峰完成\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t  ##\t\t\t\t\t\t  ##\n";
	cout<<"\t\t####################################\n";
	print();
	getch();
	system("cls");
	printf("\n\n");
	printf("\t\t利用最小生成樹解決最經濟的網絡連通\n");	
	printf("\n\n\n\n");
	getch();
	Edge e;
	int i, j, weight;
	build_adjmatrix();
    for(i=1;i<=total_vertex;i++)                 //將文件中的值復給邊
		for(j=i+1;j<=total_vertex;j++)
		{
			weight=adjmatrix[i][j];    
			if(weight!=0)                      //將不為零的邊存入addEdge中
			{
				e.vertex1=i;
				e.vertex2=j;
				e.weight=weight;
				e.edge_deleted=FALSE;
				addEdge(e);
			}
		}
	
	showEdge();	        
	printf("\n");
	getch();
	printf("由kruskal算法得:\n");
	printf("\t\t**********\n");
	kruskal();	
	getch();
	printf("\n\n");
	printf("prim算法得:\n");
	printf("\t\t**********\n");
	prim(1); //以頂點V1開始進行prim算法
	
}//main
 
void build_adjmatrix()
{ 
	FILE *fptr;
	FILE *fp;
	int vi,vj,i;
	
    fptr=fopen("kruskal.txt","r");     //以讀的形式打開文件kruskal
	fp=fopen("name.txt","r");       //以讀的形式打開文件kruskal1
 
	if(fptr==NULL)                  //判斷文件kruskal是否為空
	{
		perror("name.txt");
		exit(0);
	}
	if(fptr==NULL)           //判斷文件kruskal1是否為空
	{
		perror("kruskal.txt");
		exit(0);
	}
   
	fscanf(fptr,"%d",&total_vertex);    //將kruskal文件中的城市的各數存入頂點數中(total_vertex)
	printf("以下是所需網絡連接的城市:\n");
	for(i=0;i<total_vertex;i++)     //將文件kruskal1中的地名存入vex[]數組中
	{
		fscanf(fp,"%s",vex[i]);
		cout<<endl;
		printf("\t\tV%d頂點表示的地名為:%s\n",(i+1),vex[i]);
			
	}
	getch();
	for(vi=1;vi<=total_vertex;vi++)    //讀取文件kruskal
		for(vj=1;vj<=total_vertex;vj++)
			fscanf(fptr,"%d",&adjmatrix[vi][vj]);
	fclose(fptr);
	fclose(fp);
}//build_adjmatrix


void addEdge(Edge e)
{
	E[++total_edge]=e;
}
//addEdge

void showEdge()
{
	int i=1;
	cout<<endl;
	printf("地名的個數:    total_vertex=%d \n",total_vertex);   
	printf("網絡連線的個數:    total_edge=%d \n",total_edge);   //邊的各數
	cout<<endl;
	printf("以下是各個邊的表示:\n");
    cout<<endl;
	while(i<=total_edge)   //小于邊的各數
	{
		printf("\t\tV%d  <------->  V%d    weight=%d\n",E[i].vertex1,E[i].vertex2,E[i].weight);
		i++;
	}
}


Edge mincostEdge()
{
	int i,min;
	long minweight=100000;  
	for(i=0;i<=total_edge;i++)
	{
		if(!E[i].edge_deleted && E[i].weight<minweight)  //從中選出最不的邊而且沒有用過的
		{
			minweight=E[i].weight;
			min=i;
		}
	}
	E[min].edge_deleted=TURE;   //表示E[min]以被用過
	return E[min];

}//mincostEdge

void kruskal()
{
	Edge e;

	int i,j;
	int loop=1;
	int k;
	int  s[MAX_V][MAX_V];  //用于表示集合
	for (i=1; i<=total_vertex;i++){   //將頂點分別置于不同的集合中
		for(j=1;j<=total_vertex;j++)
		{
			if(i==j) s[i][j]=TURE;
			else s[i][j]=FALSE;
		}
	}
	int f=1,d=0,m1,m2;
	
	while(f<total_vertex){	
		e=mincostEdge();  //取出最小邊
		
		for(i=1;i<=total_vertex;i++)   //判斷邊的頭頂點屬于哪一個集合
		{
			if(s[i][e.vertex1]==1)   m1=i;
		}
	         
		for(i=1;i<=total_vertex;i++)   //判斷邊的尾頂點屬于哪一個集合
		{
			if(s[i][e.vertex2]==1)   m2=i;
		}
		
		if(m1!=m2)   //判斷頭尾頂點是否屬于同一個集合
		{
			printf("\t\t最小生成樹的第%d條邊為: ",loop++);
			printf("V%d----V%d   weight=%d\n",e.vertex1,e.vertex2,e.weight);
			for(k=1;k<=total_vertex;k++)   //合并頭尾所屬的兩個集合
			{
				s[m1][k]=s[m1][k]||s[m2][k];
				s[m2][k]=FALSE;
			}
			f++;
		}	
	}
}//kruskal


int minimum()   //Prim算法中求最小邊的點
{
	int i;
	int j;
	int tem=1000000;
	for(i=1;i<=total_vertex;i++)
	{
		if(closedge[i].lowcost!=0)   //屬于集合closedge[i].lowcost中最小的邊的頂點
		{
			if(closedge[i].lowcost<tem){
				tem=closedge[i].lowcost;
				j=i;
			}		
		}
	}
    
	return j;
}


void prim(int u)   //prim算法
{
	
	int j;
	int i;
	int k;
	for(j=1; j<=total_vertex;j++)
	{
		if(j!=u){    //將頂點u定義為一個集合
			closedge[j].adjvex=u;
			closedge[j].lowcost =adjmatrix[u][j];
		}
	}
	printf("\t\t先由V%d頂點開始\n",u);
	closedge[u].lowcost=0;
	for(i=2;i<=total_vertex;i++)
	{	k=minimum();         //求小邊的頂點
		cout<<"\t\t接著"<<"V"<<closedge[k].adjvex<<"頂點與"<<"V"<<k<<"相連     ";
		cout<<"生成邊的長度為"<<closedge[k].lowcost<<"\n";
	    closedge[k].lowcost=0;
		for(j=1;j<=total_vertex;j++)
		{
			if(adjmatrix[k][j]<closedge[j].lowcost){   //將頂點k加入closedge[j].lowcost中
				closedge[j].adjvex=k;
				closedge[j].lowcost=adjmatrix[k][j];
			}
		}
	}
	cout<<endl;
	getch();
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
56国语精品自产拍在线观看| 不卡的av电影在线观看| 中文字幕av一区二区三区高| 91精品国产91久久综合桃花| 欧美亚洲国产一卡| 在线一区二区三区四区五区| 99久久精品免费| 成人av动漫在线| av中文字幕一区| 97se亚洲国产综合自在线不卡| 国产成人午夜高潮毛片| 国产高清成人在线| 成人av在线资源网站| 成人不卡免费av| 99久久精品情趣| 欧美专区亚洲专区| 91麻豆精品国产91久久久久| 在线不卡免费欧美| 精品国产髙清在线看国产毛片| 欧美一级片在线| 26uuu亚洲婷婷狠狠天堂| 国产欧美日韩精品一区| 日韩毛片在线免费观看| 亚洲第一av色| 精品综合久久久久久8888| 国产成人午夜电影网| 91麻豆精品一区二区三区| 欧美理论在线播放| www激情久久| 中文字幕一区日韩精品欧美| 亚洲一区二区三区三| 蜜臀久久99精品久久久久久9| 狂野欧美性猛交blacked| 国产福利一区二区三区视频在线| 成人18视频在线播放| 欧日韩精品视频| 久久综合丝袜日本网| 亚洲少妇中出一区| 精品在线一区二区三区| 99久久精品国产毛片| 69堂成人精品免费视频| 欧美国产成人精品| 肉丝袜脚交视频一区二区| 韩国成人福利片在线播放| 色婷婷久久久亚洲一区二区三区| 欧美一区二区女人| 亚洲天堂2016| 国产一区二区三区综合| 欧美日韩国产经典色站一区二区三区| 精品三级在线观看| 亚洲曰韩产成在线| 丁香一区二区三区| 91精品国产免费| 亚洲精品免费视频| 国产成人av一区二区| 91精品国产综合久久久久久久久久 | 国产情人综合久久777777| 亚洲一区av在线| 波多野结衣欧美| 精品国产伦一区二区三区免费| 一区二区在线观看av| 岛国精品一区二区| 精品88久久久久88久久久| 天天操天天色综合| 欧美性大战xxxxx久久久| 中日韩av电影| 国产91对白在线观看九色| 精品少妇一区二区三区视频免付费 | 国产精品白丝jk白祙喷水网站| 欧美日韩国产经典色站一区二区三区 | 精品少妇一区二区三区免费观看| 亚洲国产精品一区二区久久恐怖片| 成人国产精品免费观看动漫| 国产午夜精品久久久久久免费视 | 9191久久久久久久久久久| 一区二区三区在线免费观看| 国产精品一区一区三区| 久久亚洲春色中文字幕久久久| 美女视频一区二区三区| 538在线一区二区精品国产| 亚洲国产精品一区二区www| 色播五月激情综合网| 亚洲欧美色图小说| 欧美在线你懂得| 亚洲成人激情自拍| 日韩视频在线永久播放| 美女诱惑一区二区| 精品国产自在久精品国产| 国产在线精品免费| 国产欧美日韩在线看| 成人黄色免费短视频| 亚洲精品伦理在线| 欧美日韩一区视频| 奇米一区二区三区av| 精品国产伦理网| 夫妻av一区二区| 亚洲人成网站在线| 7777精品伊人久久久大香线蕉| 日本sm残虐另类| 久久久精品免费观看| 99视频在线精品| 亚洲国产aⅴ成人精品无吗| 91精品国产综合久久久久久漫画| 看电视剧不卡顿的网站| 国产精品三级av| 欧美午夜精品电影| 精品一区二区三区香蕉蜜桃| 国产精品―色哟哟| 欧美精品一二三| 国产一本一道久久香蕉| 亚洲欧美日韩中文字幕一区二区三区| 在线观看不卡一区| 国产高清在线观看免费不卡| 国产精品久久一卡二卡| 久久久久久久免费视频了| 成人av网址在线观看| 亚洲成国产人片在线观看| 日韩精品自拍偷拍| 91丨九色丨尤物| 久久国产精品第一页| 亚洲欧美日韩小说| 亚洲精品在线网站| 欧美日韩精品综合在线| 国产乱对白刺激视频不卡| 亚洲国产日韩av| 欧美极品美女视频| 日韩欧美久久久| 91久久精品午夜一区二区| 国产综合色精品一区二区三区| 亚洲激情欧美激情| 亚洲国产精品国自产拍av| 欧美精品视频www在线观看| 99在线精品观看| 国产一区二区三区四区在线观看| 亚洲国产精品天堂| 亚洲激情中文1区| 国产日产欧美一区| 日韩免费高清电影| 欧美精品三级日韩久久| 91色.com| a美女胸又www黄视频久久| 国产一区二区成人久久免费影院| 丝瓜av网站精品一区二区| 亚洲激情网站免费观看| 欧美国产1区2区| 欧美刺激午夜性久久久久久久| 欧美午夜精品一区二区三区| 菠萝蜜视频在线观看一区| 国产精品99久久久久| 麻豆国产精品官网| 蜜桃av噜噜一区二区三区小说| 亚洲国产sm捆绑调教视频| 一区二区在线看| 亚洲人成网站精品片在线观看 | 国产成人精品免费看| 国产在线播放一区二区三区| 久久99精品一区二区三区三区| 男女男精品视频| 日本成人中文字幕| 久久99最新地址| 韩国精品主播一区二区在线观看 | 精品国产一区二区亚洲人成毛片 | 麻豆国产精品一区二区三区 | 久久影音资源网| 久久久精品综合| 国产精品久久久久永久免费观看| 国产日产欧美一区二区三区| 国产精品天天看| 亚洲欧美在线视频观看| 亚洲欧洲中文日韩久久av乱码| 亚洲精品视频在线| 亚洲成av人在线观看| 偷拍一区二区三区| 久久精品国产亚洲aⅴ| 激情五月婷婷综合网| 国产激情一区二区三区| 99r精品视频| 欧美日韩精品一区二区| 精品久久国产字幕高潮| 久久精品人人爽人人爽| 国产精品国产三级国产aⅴ原创| 伊人开心综合网| 久久成人综合网| 94-欧美-setu| 欧美高清你懂得| 欧美极品xxx| 亚洲国产精品久久人人爱| 久久电影网电视剧免费观看| 不卡电影一区二区三区| 欧美另类高清zo欧美| 国产蜜臀av在线一区二区三区| 一区二区欧美精品| 激情亚洲综合在线| 国产成人激情av| 亚洲成人免费视| 国产精品1区二区.| 欧美男同性恋视频网站| 久久久精品日韩欧美| 亚洲香肠在线观看| 国产精品18久久久|