<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      交個崔鵬題 6-A /c++

      #include<iostream> 
      #define MAX 10
      #include<malloc.h>
      #include<string.h>
      #include<stdlib.h>
      using namespace std;
      typedef char E;
      typedef struct Edge{
      	E start;
      	E end;
      	int weight;
      }*Edges;
      typedef struct GraphMatrix{
      	int vex,edge;
      	int matrix[MAX][MAX];
      	E data[MAX];
      }*Graph;
      
      Graph Create(){
      	Graph g = (Graph)malloc(sizeof(GraphMatrix));
      	g->vex=g->edge=0;
      	memset(g->matrix,0,sizeof(g->matrix));
      	return g;
      }
      void addVex(Graph g,E e){
      	g->data[g->vex++]=e;
      	
      }
      int getIndex(Graph g,E e){
      	for(int i=0;i<g->vex;i++)
      		if(g->data[i]==e)
      			return i;
      	return -1;
      }
      void addEdge(Graph g,E v1,E v2,int w,Edges e){
      	int a=getIndex(g,v1);
      	int b=getIndex(g,v2);
      	g->matrix[a][b]=w;
      	g->matrix[b][a]=w;
      	
      	e[g->edge].start=v1;
      	e[g->edge].end=v2;
      	e[g->edge].weight=w;
      
      	g->edge++;
      }
      
      void Kruscal(Graph g){
      	int vLen=g->vex;
      }
      int getEnds(int ends[],int i){
      	while(ends[i]!=0){
      		i=ends[i];
      	}
      	return i;
      }
      void Kruskal(Graph g,Edges e){
      	int index=0;
      	int ends[g->edge];//保存最小生成樹中每個頂點的終點 
      	for(int i=0;i<g->edge;i++)
      		ends[i]=0;
      	//創建結果數組 ,保存最終的最小生成樹 Res 為Result的縮寫 
      	Edges edgeRes =(Edges) malloc(g->edge*sizeof(struct Edge));
      	
      	//按照邊的權值大小排序,我已經在main里排序過了
      	
      	//遍歷edges數組從最小邊開始加,加一次判回路一次,沒回路就加進來(edgeRes),有回路就換下一條
      
      	 for(int i =0;i<g->edge;i++) {
      	 	//拿到第i條邊的頂點的下標start 
      		int p1= getIndex(g,e[i].start);
      		//拿到第i條邊的頂點的下標start 
      		int p2= getIndex(g,e[i].end);
      		
      		//獲取p1頂點的在已有的最小生成樹中終點是?
      		int m =getEnds(ends,p1);
      		//獲取p2頂點的在已有的最小生成樹中終點是?
      		int n =getEnds(ends,p2);
      		//是否構成回路
      		if(m!=n) {//不構成回路 
      			ends[m] =n; //設置m 在已有最小生成樹的終點 
      			edgeRes[index++]=e[i];
      		}
      	 }
      	 //統計并打印最小生成樹
      	 int temp=0;
      	  for(int i =0;i<index;i++){
      	  	temp+=edgeRes[i].weight;
      	  }
      	  cout<<temp<<endl;
      	
      	
      }
      int cmp(const void *a, const void *b){
          return ((struct Edge *)a)->weight - ((struct Edge *)b)->weight;
      }
      
      int main(){
      
      	int n;
      	cin>>n;
      	Graph graph=Create();
      	Edges edges;
      	edges=( Edges)malloc((n*(n-1)/2)*sizeof(struct Edge));
      	for(int i=0;i<n;i++){
      		char e;cin>>e;
      		addVex(graph,e);
      	}
      		
      	E v1,v2;int w;
      	while(cin>>v1>>v2){
      		cin>>w;
      		addEdge(graph,v1,v2,w,edges);
      	}
      	qsort(edges,graph->edge, sizeof(Edge), cmp);
      	Kruskal(graph,edges);
      		
      }
      
      posted @ 2023-12-21 12:53  Happy_Eric  閱讀(17)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 莲花县| 日韩有码中文字幕国产| 亚洲成人资源在线观看| 欧洲中文字幕一区二区| 日韩激情无码免费毛片| 亚洲高清WWW色好看美女| 图片区偷拍区小说区五月| 亚洲欧美激情在线一区| 国产一区二区黄色在线观看| 成熟了的熟妇毛茸茸| 国产精品人伦一区二区三| 国产精品自在拍首页视频8| 一区二区三区国产不卡| 久久综合色最新久久综合色| 成人网站免费观看| 久久综合开心激情五月天| 97午夜理论电影影院| 青青青爽在线视频观看| 四虎成人精品在永久在线| 国产精品亚韩精品无码a在线| 国内自拍av在线免费| 亚洲精品国产aⅴ成拍色拍| 国产精品亚洲一区二区在| 午夜福利片1000无码免费| 无码人妻一区二区三区AV| 麻豆国产成人AV在线播放 | 国产激情第一区二区三区| 丰满岳妇乱一区二区三区| 国产精品黄色片| 男女性高爱潮免费网站| 久操热在线视频免费观看| 黑人巨大av无码专区| 亚洲av无码牛牛影视在线二区| 日韩乱码人妻无码中文字幕视频| 亚洲av无码精品色午夜蛋壳| 国产av仑乱内谢| 永久免费观看美女裸体的网站| 欧美大胆老熟妇乱子伦视频| 7777精品久久久大香线蕉| 欧洲国产成人久久精品综合| 人人妻人人添人人爽日韩欧美|