日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树与森林的存储、遍历和树与森林的转换

發布時間:2025/4/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树与森林的存储、遍历和树与森林的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樹的存儲結構

? ?

雙親表示法

?

孩子表示法:

(a)多重鏈表(鏈表中每個指針指向一棵子樹的根結點);

(b)把每個跟結點的孩子結點排列起來,看成一個線性表,且以單鏈表做存儲結構.且N個頭指針也組成一個線性表.

?

孩子兄弟表示法://二叉樹表示法或二叉鏈表表示法

以二叉鏈表做樹的存儲結構,鏈表中結點的兩個鏈域分別指向該結點的第一個孩子結點和下一個兄弟結點(fchild 和nsibling)

//孩子兄弟表示法 typedef struct CSNode{int data;CSNode *fchild ,*nsibling; } CSNode, *CSTree;

二叉樹和樹都可用二叉鏈表作存儲結構,則以二叉鏈表作為媒介可導出樹與二叉樹之間的一一對應關系。

森林和二叉樹的轉換

由樹的二叉鏈表表示定義知道:任何一棵和樹對應的二叉樹的右子樹必空。若將森林中第二棵樹的根結點看成第一棵樹的根結點的兄弟,如此重復……則可以導出森林和二叉樹的對應關系。

樹和二叉樹的轉換

使用孩子兄弟表示法來轉換,土辦法:可以把有同一個雙親結點的各個孩子結點有虛線串起來,把每層的每個結點分支從左到右除去第一個外,其余都剪掉,則剩余的圖(包括虛線)就是二叉樹。詳細過程如下:

樹和森林的遍歷

只有兩種,森林得失先序和中序,樹的是先跟和后跟

樹的遍歷

先根遍歷:(二叉樹的先序遍歷)

??????? 先訪問根結點,

??????? 然后依次先根遍歷根的每棵子樹。

先根遍歷序列,對應二叉樹先序遍歷

后根遍歷:(二叉樹的中序遍歷)

??????? 后根訪問根的每棵子樹,

??????? 然后訪問根結點。

后根遍歷序列,對應二叉樹的中序遍歷

森林的遍歷:

先序

? 1.訪問森林中第一棵樹的根結點;

? 2.先序遍歷第一棵樹中根結點的子樹森林;

? 3.先序遍歷除去第一棵樹之后剩余的樹構成的森林.

先序遍歷序列

中序

? 1.中序遍歷第一棵樹中根結點的子樹森林;

? 2.訪問森林中第一棵樹的根結點; ?

? 3.中序遍歷除去第一棵樹之后剩余的樹構成的森林.

中序遍歷序列

?

辛苦的勞動,轉載請注明出處,謝謝…… http://www.cnblogs.com/kubixuesheng/p/4391381.html

總結

以上是生活随笔為你收集整理的树与森林的存储、遍历和树与森林的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。