中序線索化二叉樹

2022-09-03 03:51:08 字數 1700 閱讀 2401

中序線索化二叉樹

1

void tree::_intree(node * root, node * &pre)

5 _intree(root->lchild, pre); //

到達當前結點的左子樹的底部左結點

6if (root->lchild ==null) //

注意下列的條件判斷, 要先判斷pre是不是空,再是 pre的其他指標域!

10if (pre != null && pre->rchild == null)

14 pre = root; //

把 pre 指向當前結點,儲存上一次訪問的結點

15 _intree(root->rchild, pre);

16 }

較為完整可執行程式

1 #include 2

using

namespace

std;34

enum

flag;56

struct

node ;

1213

class

tree ;

2627

intmain()

3637

tree::tree()

4243 tree::~tree()

47delete(root);48}

4950

void tree::delete(node *root) 55}

5657 node *tree::create() else

70return

root;71}

7273

void tree::_intree(node * root, node * &pre)

77 _intree(root->lchild, pre); //

到達當前結點的左子樹的底部左結點

78if (root->lchild ==null) //

注意下列的條件判斷, 要先判斷pre是不是空,再是 pre的其他指標域!

82if (pre != null && pre->rchild == null)

86 pre = root; //

把 pre 指向當前結點,儲存上一次訪問的結點

87 _intree(root->rchild, pre);88}

8990 node *tree::getroot()

9394

void tree::show_intree(node *root)

98 node * p =root;

99while (p->ltag == child)

102 cout << p->data << "

"; //

輸出第乙個結點

103while (p->rchild != null)

107 cout <

108}

109110 node * tree::_next(node *root) else

119}

120return

p;121 }

中序線索化二叉樹

中序線索化二叉樹

線索化二叉樹。1 中序線索化二叉樹 2 遍歷線索化二叉樹。include include define maxsize 100 typedef char elemtype using namespace std typedef struct node tbtnode 對以 p為根節點的二叉樹中序線索...

二叉樹中序線索化

處理當前結點的前驅結點 處理後序結點 param node 當前需要線索化的結點 public void threadednodes heronode node 1.先線索化左子樹 threadednodes node.getleft 2.線索化當前結點 難點 處理當前結點的前驅結點 以8結點來理解...

二叉樹的線索化 線索二叉樹的遍歷(中序)

二叉樹的線索化 對於n個節點的二叉樹,在二叉儲存鍊錶中有n 1個空鏈域,利用這些空鏈域存放某種遍歷次序下的指向該節點的前驅和後繼的指標,這些指標成為線索,被線索的二叉樹成為線索二叉樹。這種加上了線索的二叉鍊錶稱為線索鍊錶,相應的二叉樹稱為線索二叉樹 threaded binarytree 根據線索性...