練習11 二叉樹的鏈式儲存

2021-09-13 14:28:10 字數 2106 閱讀 8659

實現二叉樹的基本操作:建立、遍歷、計算深度、結點數、葉子數等。

輸入c,先序建立二叉樹,#表示空節點;

輸入h:計算二叉樹的高度;

輸入l:計算二叉樹的葉子個數;

輸入n:計算二叉樹節點總個數;

輸入1:先序遍歷二叉樹;

輸入2:中序遍歷二叉樹;

輸入3:後續遍歷二叉樹;

輸入f:查詢值=x的節點的個數;

輸入p:以縮格文字形式輸出所有節點。

abc##de#g##f###hl

n123

fap

#include using namespace std;

class binarytree;

class bintreenode

bintreenode(char x,bintreenode *left=null,bintreenode *right=null)

~bintreenode() {}

};class binarytree

~binarytree()

void createbintree()

bool isempty()

bintreenode *parent(bintreenode *current)

bintreenode *leftchild(bintreenode *current)

bintreenode *rightchild(bintreenode *current)

int height()

int size()

int leaf()

void preorder()

void inorder()

void postorder()

void find(char x)

void show(int &cnt)

};void binarytree::createbintree(bintreenode *& subtree)

else subtree = null; //this line can be remove;

}bintreenode * binarytree::parent(bintreenode * subtree, bintreenode * current)

int binarytree::height(bintreenode * subtree)

int binarytree::size(bintreenode * subtree)

else

}int binarytree::leaf(bintreenode * subtree)//need to be rewrite

leaf(subtree->leftchild);

leaf(subtree->rightchild);

} return cnt;

}void binarytree::destroy(bintreenode *& subtree)

}void binarytree::preorder(bintreenode * subtree)

}void binarytree::inorder(bintreenode * subtree)

}void binarytree::postorder(bintreenode * subtree)

}void binarytree::find(bintreenode * subtree, char x) }}

void binarytree::show(bintreenode * subtree,int cnt)

cout << subtree->datashow(subtree->rightchild, cnt+1); }}

int main()

} else if (c == 'h')

else if (c == 'l')

else if (c == '1')

else if (c == 'n')

else if (c == '2')

else if (c == '3')

else if (c == 'f')

else if (c == 'p')

} return 0;

}

二叉樹的鏈式儲存

實現二叉樹的基本操作 建立 遍歷 計算深度 結點數 葉子數等。輸入c,先序建立二叉樹,表示空節點 輸入h 計算二叉樹的高度 輸入l 計算二叉樹的葉子個數 輸入n 計算二叉樹節點總個數 輸入1 先序遍歷二叉樹 輸入2 中序遍歷二叉樹 輸入3 後續遍歷二叉樹 輸入f 查詢值 x的節點的個數 輸入p 以縮...

二叉樹的鏈式儲存

若用鍊錶儲存一棵二叉樹時,每個結點除資料域外,還有指向左孩子和右孩子的兩個指 針。在這種儲存結構中,n個結點的二叉樹共有 個指標域,其中有 個指標域是存放了位址,有 個指標是空指標。因為有n個節點,每個節點都存了乙個lchild,乙個rchild,所以共2n個指標域。因為除了根節點,其他所有的節點都...

二叉樹鏈式儲存操作

前言 二叉樹的儲存結構 1.二叉樹的順序儲存結構 利用性質5,對於完全二叉樹可以利用一維陣列儲存,如果不是完全二叉樹,則可以補空節點,使成為完全二叉樹在進行儲存,但是對於非完全二叉樹,可能要浪費很多的空間。2.二叉樹的鏈式儲存結構 二叉樹的鏈式儲存結構就是用指標建立二叉樹中節點之間的關係,二叉樹最常...