實現二叉樹的基本操作:建立、遍歷、計算深度、結點數、葉子數等。
輸入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.二叉樹的鏈式儲存結構 二叉樹的鏈式儲存結構就是用指標建立二叉樹中節點之間的關係,二叉樹最常...