#include<> #include<> #include<> //#include <> typedef char VerT; #define MaxSize 100 #define MaxVertices 10 #define MaxWeight 10000 #define N7 typedef int DataType; typedef struct { DataType list[MaxSize]; int size; }SeqList; void ListInitiate(SeqList *L) { L->size=0; } int ListLength(SeqList L) { return ; } int ListInsert(SeqList *L,int i,DataType x) { int j; if(L->size>=MaxSize) { printf(" 顺序表已满无法插入! \n"); return 0; } else if(i<0||i>L->size) { printf(" 参数 i 不合法! \n"); return 0; } else { for(j=L->size;j>i;j--) L->list[j]=L->list[j-1]; L->list[i]=x; L->size++; return 1; }} int ListDelete(SeqList *L,int i,DataType*x) { int j; if(L->size<=0) { printf(" 顺序表已空无数据可删! \n"); return 0; } else if(i<0||i>L->size-1) { printf(" 参数 i 不合法! \n"); return 0; } else { *x=L->list[i]; for(j=i;j<L->size;j++) L->list[j]=L->list[j+1]; L->size--; return 1; }} int ListGet(SeqList L,int i,char*x) { if(i<0||i>-1) { printf(" 参数 i 不合法! \n"); return 0; } else { *x=[i]; return 1; }} typedef struct { SeqList Vertices; /* 存放结点的顺序表*/ int edge[MaxVertices][MaxVertices]; /* 存放边的邻结矩阵地*/ int numOfEdges; /* 边的条数*/ }AdjMGraph; /* 图的结构体定义*/ void Initiate(AdjMGraph *G, int n) /* 初始化*/ { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) G->edge[i][j]=0; else G->edge[i][j]=MaxWeight; } G->numOfEdges=0; /* 边的条数置为 0 */ ListInitiate(&G->Vertices); /* 顺序表初始化*/ } void InsertVertex(AdjMGraph *G, DataType vertex) /*v 在图 G 中插入结点 vertex */ { ListInsert(&G->Vertices, G->,vertex); /* 顺序表尾插入*/ } void InsertEdge(AdjMGraph *G, int v1,int v2,int weight) /* 在图 G 中插入边<v1,v2> ,边<v1,v2> 的权为 weight */ { if(v1<0 || v1>G-> || v2>G->||v2<0) { printf(" 参数 v1或 v2 越界出错! \n"); exit(1); } G->edge[v1][v2]=weight; G->numOfEdges++; } void DeleteEdge(AdjMGraph *G,int v1,int v2) /* 在图 G 中删除边<v1,v2> */ { if(v1<0 || v1>G-> || v2<0 || v2>G-> || v1==v2) { printf(" 掺数 v1或 v2 越界出错! \n"); exit(1); } if(G->edge[v1][v2]==MaxWeight
n个城市连接的最小生成树程序 来自淘豆网m.daumloan.com转载请标明出处.