常見的數(shù)據(jù)庫(kù)有哪些 請(qǐng)教一下數(shù)據(jù)結(jié)構(gòu),二叉樹的先序遍歷,中序遍歷,后序遍歷,是怎么弄的?
請(qǐng)教一下數(shù)據(jù)結(jié)構(gòu),二叉樹的先序遍歷,中序遍歷,后序遍歷,是怎么弄的?前序遍歷:其思想是先遍歷當(dāng)前節(jié)點(diǎn),然后遍歷左子樹。然后遍歷右子樹。所以您需要記錄右子樹的根節(jié)點(diǎn),并等待它被取出以遍歷右子樹。如果堆棧
請(qǐng)教一下數(shù)據(jù)結(jié)構(gòu),二叉樹的先序遍歷,中序遍歷,后序遍歷,是怎么弄的?
前序遍歷:其思想是先遍歷當(dāng)前節(jié)點(diǎn),然后遍歷左子樹。然后遍歷右子樹。所以您需要記錄右子樹的根節(jié)點(diǎn),并等待它被取出以遍歷右子樹。
如果堆棧不為空或節(jié)點(diǎn)指針不為空,則進(jìn)入循環(huán)
如果當(dāng)前節(jié)點(diǎn)不為空,則先將右側(cè)子節(jié)點(diǎn)放入堆棧(無(wú)論右側(cè)節(jié)點(diǎn)是否為空),然后輸出當(dāng)前節(jié)點(diǎn)。賦值節(jié)點(diǎn)指針是左子節(jié)點(diǎn)。
如果當(dāng)前節(jié)點(diǎn)為空。取出堆棧中的節(jié)點(diǎn)。
我懶得在后面寫。有時(shí)間就寫。
不建議業(yè)主問(wèn)這種問(wèn)題,但愿意回答的人不多。我想你可以問(wèn):哪里可以得到帶注釋的XXX源代碼
找到根節(jié)點(diǎn)(通過(guò)post-order),然后把中間順序的序列分成兩段,左子樹和右子樹,然后遞歸,在分割時(shí),可以用中間順序的左子樹和右子樹的節(jié)點(diǎn)數(shù)來(lái)確定中間順序后序序列Dbeca的每一段中的節(jié)點(diǎn)數(shù)
1。最后一個(gè)節(jié)點(diǎn)必須是根節(jié)點(diǎn),在本例中是a
2。中間順序?qū)?yīng)的根是a,所以a是根,BD是左子樹,CE是右子樹
3。左子樹中有兩個(gè)節(jié)點(diǎn),右子樹中有兩個(gè)節(jié)點(diǎn),因?yàn)楹笠豁樞虮闅v是先左后右,所以后一順序被分成兩段,左dB,右EC
4。因此,左子樹的根被確定為B,右子樹的根被確定為C
5,順序是左子樹部分BD(B是根),右子樹部分BD(B是根),左子樹部分C,右子樹部分e
和預(yù)順序ABCDE
首先,遍歷順序前序、中序、后序應(yīng)明確:前序:父節(jié)點(diǎn)、左子節(jié)點(diǎn)、右子節(jié)點(diǎn);中序:左子節(jié)點(diǎn)、父節(jié)點(diǎn)、右子節(jié)點(diǎn);后序:左子節(jié)點(diǎn)、右子節(jié)點(diǎn)、父節(jié)點(diǎn);先根據(jù)前序遍歷,確定整個(gè)二叉樹的根節(jié)點(diǎn)(前序的第一個(gè)節(jié)點(diǎn)),然后通過(guò)中間序遍歷,將整個(gè)二叉樹按根節(jié)點(diǎn)直接劃分為兩個(gè)子樹。
此時(shí),按照預(yù)序和中間序一步一步地繪制整個(gè)二叉樹并不困難。然后我們可以編寫后序遍歷序列。例如:已知二叉樹的前序遍歷序列為bc D E F H,中序遍歷序列為bd C E a H F,寫后序遍歷序列。根據(jù)預(yù)排序,樹的根節(jié)點(diǎn)是a;根據(jù)中間順序和根節(jié)點(diǎn),B、D、C、E在根節(jié)點(diǎn)的左子樹上,H、F在根節(jié)點(diǎn)的右子樹上;通過(guò)對(duì)每個(gè)子樹的逐步分析,樹是a/b f/C H/De,順序如下:decbhfa
首先找到根節(jié)點(diǎn),前序遍歷中的第一個(gè)是根節(jié)點(diǎn)(后序是反向的);然后找到中間的根節(jié)點(diǎn),左子樹在左邊,右子樹在右邊;以此類推,以您的一個(gè)為例:第一個(gè)a(在前序中),bfdg,左子樹;CEH右子樹(在中間序中)。
那么B,左子樹為空,F(xiàn)DG右子樹為空。然后C,。。。。在上面的步驟中,你可以畫一個(gè)二叉樹,然后它很容易
這是數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)被訪問(wèn)和遍歷,這是分為前序,中序和后序。預(yù)排序:首先訪問(wèn)根節(jié)點(diǎn)、左節(jié)點(diǎn)和右節(jié)點(diǎn)。中間順序:先訪問(wèn)左節(jié)點(diǎn)、根節(jié)點(diǎn)、右節(jié)點(diǎn),然后順序:先訪問(wèn)左節(jié)點(diǎn)、右節(jié)點(diǎn)、根節(jié)點(diǎn)中間順序:BAC,最后順序:BCA