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

正文內(nèi)容

通訊錄管理系統(tǒng)_數(shù)據(jù)結(jié)構(gòu)課程設計-資料下載頁

2025-04-02 23:36本頁面
  

【正文】 23 Qu[rear]=b。 while (rear!=front) { front=(front+1)%MaxSize。 b=Qu[front]。 if(blchild!=NULL) {printf(%c,blchilddata)。 rear=(rear+1)%MaxSize。 Qu[rear]=blchild。 } if(brchild!=NULL) { printf (%c,brchilddata)。 rear=(rear+1)%MaxSize。 Qu[rear]=brchild。 } } printf(\n)。 } void PreOrder(BTNode *b)//用遞歸算法的先序遍歷函數(shù) { if(b!=NULL) { printf (%c,bdata)。 PreOrder(blchild)。 PreOrder(brchild)。 } } void main () { BTNode * b,*p。 CreateBTNode (b,a(b(d,e),c(f,g)) )。 printf((1)輸出二叉樹 :)。DispBTNode (b)。printf(\n)。 printf((2)層次遍歷序列: )。TravLevel(b)。printf(\n)。 printf((3)先序遍歷序列: )。PreOrder(b)。printf(\n)。 } 設計總結(jié): 二叉樹是數(shù)據(jù)結(jié)構(gòu)的的基本內(nèi)容。雖然程序規(guī)模不大,我依然付出了努力 , 仍免不了各種錯誤的出現(xiàn)。編程過程需要很大的毅力和耐心,而且要有良好的思維和扎實的專業(yè)基礎知識,所以我需要不斷的學習,發(fā)現(xiàn)自身不足之處改正它,逐步提高自己。 24 需求分析: 設計分析: 拓撲排序的過程中要求找到入度為 0的頂點,所以采用鄰接表來存儲有向圖,而要得到鄰接表,則先定義有向圖的鄰接矩陣結(jié)構(gòu),再把鄰接矩陣轉(zhuǎn)化成鄰接表。 在具體實現(xiàn)拓撲排序的函數(shù)中,當某個頂點的入度為 0(沒有前驅(qū)頂點)時,就將此頂點輸出,同時將該頂點的所有后繼頂點的入度減 1,為了避免重復檢測入度為 0 的頂點,設立一個棧 St,以存放入度為 0 的頂點。 源程序代碼: include include define MAXV 10 // 最大頂點個數(shù) typedef struct { int edges[MAXV][MAXV]。 // 鄰接矩陣的邊數(shù)組 int n。 // 頂點數(shù) }MGraph。 typedef struct ANode { int adjvex。 // 該弧的終點位置 struct ANode * nextarc。 // 指向下一條 弧的指針 }ArcNode。 typedef struct { int no。 // 頂點信息 int count。 // 頂點入度 25 ArcNode * firstarc。 // 指向第一條弧 }VNode, AdjList[MAXV]。 typedef struct { AdjList adjlist。 // 鄰接表 int n。 // 圖的頂點數(shù) }ALGraph。 void MatTolist(MGraph g, ALGraph * amp。G) { int i, j, n=。 ArcNode * p。 G = (ALGraph *)malloc(sizeof(ALGraph))。 for (i=0。 in。 i++) Gadjlist[i].firstarc = NULL。 for (i=0。 in。 i++) for (j=n1。 j=0。 j) if ([i][j]!=0) { p=(ArcNode *)malloc(sizeof(ArcNode))。 padjvex = j。 pnextarc = Gadjlist[i].firstarc。 Gadjlist[i].firstarc = p。 } Gn=n。 } void TopSort(ALGraph * G) { int i,j,flag=0,a[MAXV]。 int St[MAXV], top = 1。 // 棧 St 的指針為 top ArcNode * p。 for (i=0。 iGn。 i++) // 入度置初值為 0 Gadjlist[i].count = 0。 for (i=0。 iGn。 i++) // 求所有頂點的入度 { p=Gadjlist[i].firstarc。 26 while (p!=NULL) { Gadjlist[padjvex].count++。 p=pnextarc。 } } for (i=0。 iGn。 i++) if (Gadjlist[i].count==0) // 入度為 0 的頂點進棧 { top++。 St[top] = i。 } while (top1) // 棧不為空時循環(huán) { i = St[top]。 top。 // 出棧 a[flag++]=i。 // 輸出頂點 p=Gadjlist[i].firstarc。 // 找第一個相鄰頂點 while (p!=NULL) { j = padjvex。 Gadjlist[j].count。 if (Gadjlist[j].count==0) { top++。 St[top] = j。 // 入度為 0 的相鄰頂點進棧 } p = pnextarc。 // 找下一個相鄰頂點 } } if (flagGn) printf(該圖存在回路,不存在拓撲序列 !\n)。 else { printf(該圖的一個拓撲序列為 :)。 for(i=0。 iflag。 i++) printf(%d, a[i])。 printf(\n)。 27 } } void main() { int i, j。 MGraph g。 ALGraph * G。 G=(ALGraph *)malloc(sizeof(ALGraph))。 printf(請輸入圖的頂點數(shù) :)。 scanf(%d, amp。)。 printf(請輸入圖的鄰接矩陣 :\n)。 for(i=0。 i。 i++) for(j=0。 j。 j++) scanf(%d, amp。[i][j])。 MatTolist(g, G)。 TopSort(G)。 } 測試用例: 對 圖 — 1 有向圖進行拓撲排序,由于圖中存在回路,則無法得到拓撲序列 圖 — 1 2 0 3 4 1 28 對圖 — 2 有向圖進行拓撲排序,得到拓撲序列 實驗總結(jié): 通過對有向圖進行拓撲排序 讓 我了解 到 有向圖的鄰接矩陣和鄰接 表的存儲結(jié)構(gòu)以及它們之間的相互轉(zhuǎn)化,學會了對有向圖的拓撲排序算法, 與棧聯(lián)系起來找到拓撲序列 , 但 是, 這種 算法只能找到一條拓撲序列, 所以該算法仍需改進。1 1 0 2 3 4
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1