freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

圖的基本操作與實現的課程設計報告(編輯修改稿)

2025-04-19 06:21 本頁面
 

【文章內容簡介】 (\n)。 }}//鄰接矩陣存儲結構下求出每個頂點的度并輸出void MVertices(AdjMGraph *G,DataType a[]) { int i,j,m。 DataType b[MaxVertices]。//用數組b[]記錄相應結點的度 for(i=0。iG。i++) b[i]=0。 //置0 printf(鄰接矩陣存儲結構下圖的頂點的度為:\n)。 for(m=0。mG。m++) //求出每個結點的度 { for(i=0。iG。i++) for(j=0。jG。j++) { if(i==mamp。amp。Gedge[i][j]0amp。amp。Gedge[i][j]MaxWeight) //求出鄰接矩陣第i行權值存在的邊的個數,當邊m,j存在時,b[m]加1 b[m]++。 if(j==mamp。amp。i!=mamp。amp。Gedge[i][j]0amp。amp。Gedge[i][j]MaxWeight) //求出鄰接矩陣第j列權值存在的邊的個數,當邊i,m存在時,b[m]加1 b[m]++。 } printf(頂點%d的度為:%d\n,a[m],b[m])。 }} //查找圖G中是否存在點vint ChaZhao(AdjMGraph *G,int v) { if(0=vamp。amp。vG) { printf(存在頂點%d\n,v)。 return 1。 } else { printf(不存在頂點%d\n,v)。 return 0。 }}//刪除查找到的結點v并刪除該結點及與之相關的邊void MDelete(AdjMGraph *G,int v){ int i。 for(i=0。iG。i++) { if(Gedge[v][i]0amp。amp。Gedge[v][i]MaxWeight) //當鄰接矩陣的第v行有邊v,i存在時,刪除邊v,i DeleteEdge(G,v,i)。 if(Gedge[i][v]0amp。amp。Gedge[i][v]MaxWeight) //當鄰接矩陣的第j行有邊i,v存在時,刪除邊i,v DeleteEdge(G,i,v)。 } DeleteVerten(G,v)。//刪除結點v}(4)/* */typedef struct{ int row。 //行下標 int col。 //列下標 int weight。 //權值}RowColWeight。 //邊信息結構體定義void CreatGraph(AdjMGraph *G,DataType v[],int n,RowColWeight E[],int e)//在圖G中插入n個結點信息v和e條邊信息E{ int i,k。 Initiate(G,n)。 //結點順序表初始化 for(i=0。in。i++) InsertVertex(G,v[i])。 //結點插入 for(k=0。ke。k++) InsertEdge(G,E[k].row,E[k].col,E[k].weight)。 //邊插入}(5)/* *///鄰接表的存儲結構typedef struct Node { int dest。 //鄰接邊的弧頭結點序號 struct Node *next。 }Edge。 //鄰接邊單鏈表的結點結構體typedef struct{ DataType data。 //結點數據元素 int sorce。 //鄰接邊的弧尾結點序號 Edge *adj。 //鄰接邊的頭指針}AdjLHeight。 //數組的數據元素類型結構體typedef struct{ AdjLHeight a[MaxVertices]。 //鄰接表數組 int numOfVerts。 //結點個數 int numOfEdges。 //邊個數}AdjLGraph。 //鄰接表結構體//初始化操作函數void LAdjInitiate(AdjLGraph *G){ int i。 GnumOfVerts=0。 GnumOfEdges=0。 for(i=0。iMaxVertices。i++) { Ga[i].sorce=i。 Ga[i].adj=NULL。 }}//撤銷操作函數void LAdjDestroy(AdjLGraph *G)//撤銷圖G中的所有鄰接邊單鏈表{ int i。 Edge *p,*q。 for(i=0。iGnumOfVerts。i++) { p=Ga[i].adj。 while(p!=NULL) { q=pnext。 free(p)。 p=q。 } }}//插入結點操作函數void LInsertVertex(AdjLGraph *G,int i,DataType vertex)//在圖G中的第i(0=iMaxVertices)個位置插入結點數據元素vertex{ if(i=0amp。amp。iMaxVertices) { Ga[i].data=vertex。 //存儲結點數據元素vertex GnumOfVerts++。 //個數加1 } else printf(結點越界)。}//插入邊操作函數void LInsertEdge(AdjLGraph *G,int v1,int v2)//在圖G中加入邊v1,v2的信息{ Edge *p。 //定義一個鄰接邊指針 if(v10||v1=GnumOfVerts||v20||v2=GnumOfVerts) { printf(參數v1或v2越界出錯)。 exit(0)。 } p=(Edge *)malloc(sizeof(Edge))。 //申請鄰接邊單鏈表結點空間 pdest=v2。 //置鄰接邊弧頭序號 pnext=Ga[v1].adj。 //新結點插入單鏈表的表頭 Ga[v1].adj=p。 //頭指針指向新的單鏈表表頭 GnumOfEdges++。 //邊數個數加1} //刪除邊操作函數void LDeleteEdge(AdjLGraph *G,int v1,int v2)//刪除圖G中的邊v1,v2信息{ Edge *curr,*pre。 if(v10||v1=GnumOfVerts||v20||v2=GnumOfVerts) { printf(參數v1或v2越界出錯!)。 exit(0)。 } pre=NULL。 curr=Ga[v1].adj。 while(curr!=NULLamp。amp。currdest!=v2) //在v1結點的鄰接邊單鏈表中查找v2結點 { pre=curr。 curr=currnext。 } //刪除表示鄰接邊v1,v2的結點
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1