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

正文內容

第4單元非線性數(shù)據(jù)結構樹、二叉樹主講:劉志強-資料下載頁

2024-10-24 15:15本頁面

【導讀】數(shù)據(jù)間不是一一對應的數(shù)據(jù)結構如何描述?結構的基礎上進行操作(增、刪、為什么采用二叉樹?叉樹能夠相互轉換嗎?結點、根、葉、路徑、結點度、結點的層次、子結點、父結點。樹形結構是以分支關系來定義的層次結構。–各種社會組織機構;D是具有相同特性的數(shù)據(jù)元素的集合;–D中其余數(shù)據(jù)元素都有且只有一個前趨;繼(子樹),或無后繼(葉結點);0)個互不相交的集合T1,且每個集合又是一棵樹,它們稱為這個根的子樹。樹的度樹中結點的最大度數(shù);上述樹的度為3。;H,I,J互為兄弟。為1,子結點為2,依次類推。例如,結點A到M的高度為4。中每個結點而言,其子樹的集合即為森林。點均為該結點的祖先。找不到第i個子結點則返回空值。CREATE(x,T1,T2,…,Tk)生成一個結點x,下。中各個結點,且使每個結點只能被訪問一次。一個指示器指示其雙親結點在數(shù)組中的位置。

  

【正文】 1), 工作變量 p指向 root。 – step2 p非空 (p!=NULL) 或棧非空 (top!=1)循環(huán) 。 – step3 p非空循環(huán) 。 訪問 p(打印 pdata)。 – step4 當前元素進棧 , p取 plc。 執(zhí)行 step3; – step5 p為空 , 棧非空 , 則出棧 , p取 prc, 返回 step2. 下一頁 上一頁 停止放映 第 63 頁 二叉樹遍歷算法 ( 非遞歸算法 前序法程序) define N m void preorder_t(TNODE * root) { TNODE *p, *stack[N]。 int top=1。 p=root。 while ((p!= NULL)||(top!= 1)) { while ( P!=NULL) { printf(“%d\n”,pdata)。 top ++。 stack[top]=p。 p=plc。 } if ( top !=1) { p=stack[top]。 top 。 p=prc。 } } } 下一頁 上一頁 停止放映 第 64 頁 二叉樹遍歷算法 (非遞歸、前序法程序驗證) 打印 A – A進棧 , 取 A?.左子 ( B ) – 打印 B B進棧,取 B?.左子 ( C ) 打印 C – C 進棧, 取 C?.左子 ( 空 ) – C 退棧, 取 C?.右子 ( 空 ) B 退棧, 取 B?.右子 ( D ) 打印 D – D進棧,取 D?.左子 ( E ) – 打印 E E進棧,取 E?.左子 ( 空 ) E退棧, 取 E?.右子 ( 空 ) – D退 棧,取 D?.右子 ( F ) – 打印 F F進棧,取 F?.左子 ( 空 ) F退棧, 取 F?.右子 ( 空 ) – A退 棧,取 A?.右子 ( 空 ) 結束 F E D C B A 下一頁 上一頁 停止放映 第 65 頁 表達式樹及應用 在計算機中對表達式進行分析和計算是一項重要的任務 。 舉例 , 用二叉樹表示表達式: a + b * ( c d ) - e /f 前序遍歷序列:-+a*b-cd/ef 中序遍歷序列:a+b*c-d-e/f 后序遍歷序列:abcd-*+ef/- 分析: – 每個葉結點為運算對象; – 每個非葉結點為運算符; – 每個子樹對應一個子表達式 。 表達式處理一般采用后序法 , 也稱 ? 逆波蘭 ? 法 。 表達式處理規(guī)則: – 見運算數(shù)入棧; – 見運算符 , 取兩個棧頂元素運算后再壓棧; – 直到處理結束 。 - + / - e f *b - c d a 下一頁 上一頁 停止放映 第 66 頁 表達式樹應用舉例 ( 1) a b c d 入棧 , ( 2) 遇 ‘ ’, c d 出棧 , 運算后再壓棧; ( 3) 遇 ‘ *’ , ( c d) 和 b 出棧 , 運算后再壓棧; ( 4) 遇 ‘ +’, b*( cd) 和 a出棧 , 運算后再壓棧; ( 5) e f 入棧; ( 6) 遇 ‘ /’, f e 出棧 , 運算后再壓棧; ( 7) 遇 ‘ ’, a+b*( cd) 和 e/f出棧 , 運算后再壓棧 。 d c b a ( 1) ( 2) c d b a ( 3) b*( cd) a ( 5) a+b*( cd) ( 4) a+b*( cd) f e ( 6) e/f a+b*( cd) ( 7) a+b*( cd) e/f 下一頁 上一頁 停止放映 第 67 頁 樹、森林與二叉樹的轉換 ? 由于二叉樹的存儲結構比較簡單 ,處理起來也比較方便 , 所以有時需要把復雜的樹 , 轉換為簡單的二叉樹后再作處理 。 ? 樹轉換成二叉樹 ? 森林轉換成二叉樹 下一頁 上一頁 停止放映 第 68 頁 樹轉換成二叉樹 操作算法: – 保留一個結點的最左子結點; – 抹掉其余兄弟結點與上級結點的連線; – 將兄弟結點連在一起; – 以根為軸 , 順時針旋轉一個角度 。 舉例: o o o o o o o o o o o o o o 加線 抹線 o o o o o o o 旋轉 o o o o o o o 下一頁 上一頁 停止放映 第 69 頁 森林轉換成二叉樹 操作算法: – 將森林中每棵樹的樹根連接起來; – 將每棵樹轉換成對應的二叉樹; – 以森林中第一棵樹的根為軸順時針旋轉一個角度 。 舉例 o o o o o o o o o o 連線 o o o o o o o o o o 抹線 o o o o o o o o o o 旋轉 o o o o o o o o o o 下一頁 上一頁 停止放映 第 70 頁 將二叉樹還原成樹 將二叉樹還原成樹的操作步驟為: step1 若某結點是其雙親的左子,則把該結點的右子、右子的右子、 … ,都與該結點的雙親結點用線連起來; step2 刪除原二叉樹中所有的雙親結點與右子結點的連線; step3 整理 2兩步所得到的樹或森林,使之結構層次分明。 下一頁 上一頁 停止放映 第 71 頁 舉例 A B E C F D G A B E C F D G ( a)二叉樹 ( b)加連線 A B E C F D G ( c)刪除與 右子的連線 A B E C F D G ( d)還原后的樹 下一頁 上一頁 停止放映 第 72 頁 中心網址: 作業(yè)提交地址: 我的 Email地址 : 答疑安排: 星期四下午: 4:00~ 6:00 地點:計教中心 102房間 (1300大教室對面 ) 謝謝,再見!
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1