把樹轉換成二叉樹的樣子,進行儲存typedef strcture btnode
btnode;
typedef
struct btnode
btnode;
a1->child=a2;
a1->sibling=null;
a2->sibling= a3;
a3->sibling=a4;
a4->sibling=null;
// 取a1孩子結點a3:
a1->child->sibling
需要建立乙個迴圈佇列void preorder(btnode *p)
}// 假設訪問函式visit()已經定義過
// visit(p)則在(1)、(2)、(3)處
// 分別是先序、中序和後序遍歷。
2.3.1 線索化void level(btnode *p)
if(q->rchild!=null) // 如果右子樹不空,則右子樹的根節點入隊
}}}
通過中序遍歷對二叉樹線索化的遞迴演算法
2.3.2 建立中序線索二叉樹void inthread(tbtnode *p, tbtnode *&pre)
if(pre!=null&&pre->rchild==null)
/* 建立前驅結點的後繼線索 */
pre=p;
//pre指向當前的p,作為p將要指向的下乙個結點的前驅結點指示指標
p=p->rchild;
//p指向乙個新結點,此時pre 和p分別指向的結點形成了乙個前驅後繼對
inthread(p,pre)
}}
通過中序遍歷建立中序線索二叉樹
2.3.3 遍歷中序線索二叉樹void createinthread(tbtnode *root)
}
求以p為根的中序線索二叉樹中,中序序列下的第乙個結點
求在中序線索二叉樹中,結點p在中序下的後繼結點tbtnode *first(tbtnode *p)
遍歷中序線索二叉樹tbtnode *next(tbtnode *p)
void inorder(tbtnode *root)
資料結構 樹與二叉樹 (C )
一.樹的基本概念 樹 tree 是n n 0 個結點的有限集。它有唯一的根 1結點 和若干顆互不相交的子樹 如圖上子樹5 11 12等 組成。接下來以上面樹為例子介紹樹的基本術語。二.樹的儲存結構 順序儲存結構 假設以一組連續空間儲存數的結點,同時在每個結點中,附設乙個指示器指示其雙親結點到鍊錶中的...
c 列印二叉樹 考研資料結構演算法之二叉樹
查詢二叉樹值為x的結點。查詢二叉樹中值為x的結點 求二叉樹的高度 int 列印二叉樹 void 輸出葉子結點 void 先序遍歷非遞迴演算法 演算法思想1 二叉樹的層次遍歷 層次遍歷 編寫在以bst為樹根指標的二叉搜尋樹上進行查詢值為item的結點的非遞迴演算法,若查詢成功能則由item帶回整個結點...
C語言 資料結構 二叉樹
一 樹的概念及結構 1.樹是一種非線性的資料結構,它是由n n 0 個有限結點組成乙個具有層次關係的集合。把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點 每個結點有零個或多個子結點 沒有父結點的結點稱為根結點 每乙個非根結點有且只有乙個父結點 除了根結點外,...