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

正文內(nèi)容

第七章圖-wenkub.com

2024-09-01 15:51 本頁面
   

【正文】 P[w][w]=1。 if(!final[w]amp。 } final[v]=1。 for(w=0。final[v0]=1。w++) P[v][w]=0。v。 for(p=[v0].firstarc。P,ShortestPathTable amp。p=pnextarc) { DFS2(G,padjvex)。 DFS1(G,padjvex)。 for(p=[i].firstarc。 //第二次深度優(yōu)先遍歷 :建立 vl for(i=0。i++) if(!indegree[i]) DFS1(G,i)。 } Elemtype。 union { int value。 v1=Evaluate_imp(G,padjvex)。i++) if(!indegree[i]) r=i。 printf(%c,Tdata)。 PrintNiBoLan_DAG(G,pnexarcadjvex)。 }//NiBoLan_DAG void PrintNiBoLan_DAG(ALGraph G,int i)//打印輸出以頂點 i 為根的表達式 的逆波蘭式 { c=[i].data。 for(i=0。 if(!visited[j]) DFS(G,j,len+1)。 //保存下來 maxlen=len。amp。i++) printf(%d,mlp[i])。 if(!indegree[i]) DFS(G,i,0)。i。 //數(shù)組 path用于存儲當前路徑 int mlp[MAXSIZE]。 if(kmax) max=k。 for(p=[i].firstarc。//從每一個零入度頂點出發(fā)構(gòu)建 MPL域 }//Fill_MPL int Get_MPL(ALGraph amp。G)//為有向無環(huán)圖 G添加 MPL域 { FindIndegree(G,indegree)。p。w++) if(!visited[w]) flag=0。w++) visited[w]=0。 void Get_Root(ALGraph G)//求有向無環(huán)圖的根 ,如果有的話 { for(v=0。 if(!(indegree[k])) Push(S,k)。new[i]=++count。i。 //作為雙親最后一個孩子的兄弟 } }//Addto_CSTree 分析 :本算法使用一維結(jié)構(gòu)體變量數(shù)組來表示等價類 ,每個連通分量所包含的所有結(jié)點屬于一個等價類 .在這個結(jié)構(gòu)上實現(xiàn)了初始化 ,判斷元素是否等價 (兩個結(jié)點是否屬于同一個連通分量 ),合并等價類 (連通分量 )的操作 . Status TopoSeq(ALGraph G,int new[ ])//按照題目要求給有向無 環(huán)圖的結(jié)點重新編號 ,并存入數(shù)組 new 中 { int indegree[MAXSIZE]。 //作為雙親的第一個孩子 else //雙親已經(jīng)有了孩子 { for(r=pfirstchild。T,int i,int j)//把邊 (i,j)添加到孩子兄弟鏈表表示的樹T中 { p=Locate(T,i)。 //加入到生成樹中 merge_ec(vexs,vexs[u].eo,vexs[v].eo)。T)//求圖的最小生成樹的克魯斯卡爾算法 { Init_VexInfo(vexs,)。vexs[i].vex。 //初始狀態(tài) :每一個結(jié)點都屬于不同的連通分量 }//Init_VexInfo int is_ec(VexInfo vexs[ ],int i,int j)//判斷頂點 i 和頂點 j 是否屬于同一個連通分量 { if(vexs[i].eo==vexs[j].eo) return 1。 //記錄結(jié)點所屬連通分量號的數(shù)組 void Init_VexInfo(VexInfo amp。 ... }//main 分析 :這個算法是在 Prim算法的基礎上添加了非連通圖支持和孩子兄弟鏈表構(gòu)建模塊而得到的 ,其時間復雜度為 O(n^2). typedef struct { int vex。 rnextsib=q。 } //作為新樹插入到最右側(cè) else if(!pfirstchild) //雙親還沒有孩子 pfirstchild=q。rnextsib。 qdata=j。 }//if else Forest_Prim(G,k)。 //把這條邊加入生成森林中 closedge[k].lowcost=0。 for(i=1。 for(p=[j].firstarc。 }//for }//DFS2 分析 :求有向圖的強連通分量的算法的時間復雜度和深度優(yōu)先遍歷相同 ,也為O(n+e). void Forest_Prim(ALGraph G,int k,CSTree amp。 //在第二次遍歷中輸出結(jié)點序號 for(p=[v].firstin。 if(!visited[w]) DFS1(G,w)。 } }//for }//Get_SGraph void DFS1(OLGraph G,int v)//第一次深度優(yōu)先遍歷的算法 { visited[v]=1。i=0。 for(v=0。v++) visited[v]=0。 int count。 //所有現(xiàn)存回路都不與 thiscycle 完全相等 }//exist_cycle 分析 :這個算法的思想是 ,在遍歷中暫存當前路徑 ,當遇到一個 結(jié)點已經(jīng)在路徑之中時就表明存在一條回路 。 //完全相等 for(m=0。 for(n=0。k++)。 //例如 ,142857和 857142是 相同的回路 for(k=0。 for(i=0。i++) thiscycle[i]=0。i++) thiscycle[j]=path[i+j]。path[i]!=w。p。v++) if(!visited[v]) DFS(G,v,0)。v。 //暫存當前路徑 int cycles[MAXSIZE][MAXSIZE]。 if(!visited[l]) sum+=GetPathNum_Len(G,l,j,len1)//剩余路徑長度減一 }//for visited[i]=0。 //sum表示通過本結(jié)點的路徑數(shù) visited[i]=1。 //在主函數(shù)中初次調(diào)用 ,k值應為 0 ... }//main int GetPathNum_Len(ALGraph G,int i,int j,int len)//求鄰接表方式存儲的有向圖 G的頂點 i 到 j 之間長度為 len的簡單路徑條數(shù) { if(i==jamp。 if(!visited[l]) Find_All_Path(G,l,v,k+1)。i++) printf(%d,path[i])。 //加入當前路徑中 visited[u]=1。 //剩余路徑長度減一 }//for visited[i]=0。 for(p=[i].firstarc。 int exist_path_len(ALGraph G,int i,int j,int k)//判斷鄰接表方式存儲的有向圖 G的頂點 i 到 j 是否存在長度為 k的簡單路徑 { if(i==jamp。 //圖中存在環(huán) for(i=1。p。 while(!StackEmpty(S)) { Pop(S,i)。 for(i=1。 } }//if }//while }//Straverse_Nonrecursive 分析 :本算法的基本思想與二叉樹的先序遍歷非遞歸算法相同 ,請參考 是強連通圖 ,所以從第一個結(jié)點出發(fā)一定能夠訪問到所有結(jié)點 . 見書后解答 . Status TopoNo(ALGraph G)//按照題目要求順序重排有向圖中的頂點 { int new[MAXSIZE],indegree[MAXSIZE]。amp。 //向左走到盡頭 } }//while if(!StackEmpty(S)) { Pop(S,j)。amp。 while(!StackEmpty(S)) { while(Gettop(S,i)amp。 InitStack(S)。 if(k==j) return 1。 visited[u]=1。//i 下游的頂點到 j 有路徑 }//for }//else }//exist_path_DFS int exist_path_BFS(ALGraph G,int i,int j)//廣度優(yōu)先判斷有向圖 G中頂點 i 到頂點j 是否有路徑 ,是則返回 1,否則返回 0 { int visited[MAXSIZE]。p=pnextarc) { k=padjvex。 //指示頂點是否在當前路徑上 int exist_path_DFS(ALGraph G,int i,int j)//深度優(yōu)先判斷有向圖 G中
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1