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

正文內(nèi)容

本單元涉及的內(nèi)容(編輯修改稿)

2024-11-03 20:09 本頁面
 

【文章內(nèi)容簡介】 *TNODE。 void Create_t(TNODE amp。bt) { char ch。 cinch。 if(ch==39。39。) bt=NULL。 else { bt=new struct tnode。 btdata=ch。 Create_t(btlchild)。 Create_t(btrchild)。 } } A B C D E F ABC..DE..F... 下一頁 上一頁 停止放映 第 41 頁 建立二叉樹 (續(xù)) void preOrder_t (struct tnode *root) { if ( root != NULL ) {coutrootdata 。 preOrder_t(rootlchild)。 preOrder_t(rootrchild)。 } } main() { TNODE root。 Create_t(root)。 preOrder_t(root)。 } 下一頁 上一頁 停止放映 第 42 頁 樹的存儲結(jié)構(gòu) ? 雙親表示法 ? 孩子表示法 ? 孩子兄弟表示法 下一頁 上一頁 停止放映 第 43 頁 雙親表示法 1 2 3 4 5 6 7 8 9 結(jié)點(diǎn)序號 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 0 1 1 2 2 3 5 5 5 方法特點(diǎn): 找根容易,找子結(jié)點(diǎn)難, 要遍歷整個(gè)數(shù)組。 下一頁 上一頁 停止放映 第 44 頁 雙親表示法 C++描述 用數(shù)組存儲樹的結(jié)點(diǎn)信息 , 在每個(gè)結(jié)點(diǎn)中附設(shè)一個(gè)指示器指示其雙親結(jié)點(diǎn)在數(shù)組中的位置 ,也稱為數(shù)組實(shí)現(xiàn)方法 。 結(jié)構(gòu)描述: define MAXSIZE 100 typedef struct PTNode{ TElemType data; int parent ; } PTNode; typedef struc { PTNode nodes[MAXSIZE]; int n; } Ptree; 下一頁 上一頁 停止放映 第 45 頁 孩子表示法 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 3 ^ 4 5 ^ 6 ^ ^ ^ ^ ^ ^ 7 8 9 ^ 方法特點(diǎn) : 便于實(shí)現(xiàn)對孩子的操 作 ,卻不便于對父親 的操作 . 下一頁 上一頁 停止放映 第 46 頁 孩子表示法 C++描述 ? 把每個(gè)結(jié)點(diǎn)的孩子結(jié)點(diǎn)排列起來,組成一個(gè)線性表,且以單鏈表作為存儲結(jié)構(gòu),則 n個(gè)結(jié)點(diǎn)有 n個(gè)孩子鏈表,也稱為鏈表實(shí)現(xiàn)方式 。 ? 結(jié)構(gòu)描述為: typedef struct CTNode typedef struct { int child; { CTBox nodes[MAXSIZE]; struct CTNode *next: int n; } *Childptr; } Ctree; typedef struct { TElemType data; Childptr firstchild; } CTBox; 下一頁 上一頁 停止放映 第 47 頁 孩子兄弟表示法 1 2 3 4 5 6 7 8 9 1 2 ^ 3 7 4 5 6 8 9 ^ ^ ^ ^ ^ ^ ^ ^ 方法特點(diǎn) : 這種存儲結(jié)構(gòu)便于實(shí)現(xiàn)各種樹的操作 . ^ 下一頁 上一頁 停止放映 第 48 頁 孩子兄弟表示法 C++描述 ? 二叉鏈表實(shí)現(xiàn)方式 ( 孩子兄弟表示法 ) 以二叉鏈表作為樹的存儲結(jié)構(gòu) 。 鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子結(jié)點(diǎn)和下一個(gè)兄弟結(jié)點(diǎn) 。 結(jié)構(gòu)描述為: typedef struct CSNode{ ElemType data; struct CSNode *firstchild , *nextsibling; } CSNode, * CSTree; 下一頁 上一頁 停止放映 第 49 頁 表達(dá)式樹及應(yīng)用 ? 在計(jì)算機(jī)中對表達(dá)式進(jìn)行分析和計(jì)算是一項(xiàng)重要的任務(wù) 。 ? 舉例 , 用二叉樹表示表達(dá)式: a + b * ( c d ) - e /f 前序遍歷序列:-+a*b-cd/ef 中序遍歷序列:a+b*c-d-e/f 后序遍歷序列:abcd-*+ef/- ? 分析: – 每個(gè)葉結(jié)點(diǎn)為運(yùn)算對象; – 每個(gè)非葉結(jié)點(diǎn)為運(yùn)算符; – 每個(gè)子樹對應(yīng)一個(gè)子表達(dá)式 。 ? 表達(dá)式處理一般采用后序法 , 也稱 “ 逆波蘭 ” 法 。 ? 表達(dá)式處理規(guī)則: – 見運(yùn)算數(shù)入棧; – 見運(yùn)算符 , 取兩個(gè)棧頂元素運(yùn)算后再壓棧; – 直到處理結(jié)束 。 - + / - e f *b - c d a 下一頁 上一頁 停止放映 第 50 頁 樹、森林與二叉樹的轉(zhuǎn)換 ? 由于二叉樹的存儲結(jié)構(gòu)比較簡單 , 處理起來也比較方便 , 所以有時(shí)需要把復(fù)雜的樹 , 轉(zhuǎn)換為簡單的二叉樹后再作處理 。 ? 樹轉(zhuǎn)換成二叉樹 ? 森林轉(zhuǎn)換成二叉樹 下一頁 上一頁 停止放映 第 51 頁 樹轉(zhuǎn)換成二叉樹 ? 操作算法: – 保留一個(gè)結(jié)點(diǎn)的最左子結(jié)點(diǎn); – 抹掉其余兄弟結(jié)點(diǎn)與上級結(jié)點(diǎn)的連線; – 將兄弟結(jié)點(diǎn)連在一起; – 以根為軸 , 順時(shí)針旋轉(zhuǎn)一個(gè)角度 。 ? 舉例: o o o o o o o o o o o o o o 加線 抹線 o o o o o o o 旋轉(zhuǎn) o o o o o o o 下一頁 上一頁 停止放映 第 52 頁 森林轉(zhuǎn)換成二叉樹 ? 操作算法: – 將森林中每棵樹的樹根連接起來; – 將每棵樹轉(zhuǎn)換成對應(yīng)的二叉樹; – 以森林中第一棵樹的根為軸順時(shí)針旋轉(zhuǎn)一個(gè)角度 。 ? 舉例 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 旋轉(zhuǎn) o o o o o o o o o o 下一頁 上一頁 停止放映 第 53 頁 將二叉樹還原成樹事例 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)還原后的樹 下一頁 上一頁 停止放映 第 54 頁 將二叉樹還原成樹 ? 將二叉樹還原成樹的操作步驟為: step1 把各結(jié)點(diǎn)的右子、都與該結(jié)點(diǎn)的雙親結(jié)點(diǎn)用線連起來; step2 刪除原二叉樹中所有的雙親結(jié)點(diǎn)與右子結(jié)點(diǎn)的連線; step3 旋轉(zhuǎn)一定角度。 下一頁 上一頁 停止放映 第 55 頁 六、二叉排序樹的生成 對給定數(shù)列 {a1, a2, … ,an},根據(jù)二叉排序樹特性 ,逐個(gè)將結(jié)點(diǎn)插入到二叉排序中 。 具體操作步驟: step1 a1是根結(jié)點(diǎn); step2 若 aiaj ,且 aj的左子為空 ,則將 ai插入到 aj的左子 。若 aj的左子非空 ,則繼續(xù)尋找合適的插入位置 。 若 ai?aj, 且 aj的右子為空 , 則將 ai插入到 aj的右子;否則繼續(xù)沿右子樹尋找合適的插入位置; 插入 ai 插入到 aj的左子 ai〈 aj 插入到 aj的右子 ai ? aj step3 重復(fù) step2,直到所有結(jié)點(diǎn)插入完為止。 下一頁 上一頁 停止放映 第 56 頁 二叉排序樹算法 二叉排序樹結(jié)點(diǎn)結(jié)構(gòu): struct tree { char info;
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1