一、树
1:树是一种非线性结构,是n(n≥0)个结点的有限集合T。 当n=0时,成为空树;当n>0时,该集合满足如下条件:
①必有一个称为根(root)的特定结点,没有直接前驱,但有零个或多个直接后继。
②其余n-1个结点可以划分成m(m≥0)个互不相交的有限集T0、T1…Tm-1,其余Ti又是一棵树,称为根的子树。每颗子树的根结点有且仅有一个直接前驱,但有零个或多个直接后继。
2:树的相关术语:结点、树高度,结点层数,结点度数,路径,叶结点,分支结点,根结点,父结点,左结点,右结点,兄弟结点,祖先结点,子孙结点,左子树,右子树等。
二、二叉树(BinaryTree)
1:定义
class BinaryTree
{
class BtNode //binaryTreeNode
{
int data;
BtNode leftchild;
BtNode rightchild;
public BtNode()
{
data = 0;
leftchild = rightchild = null;
}
public BtNode(int x)
{
data = x;
leftchild = rightchild = null;
}
public BtNode(int x,BtNode left,BtNode right)
{
data = x;
leftchild = left;
rightchild = right;
}
private BtNode root;
public BinaryTree()
{
root = null;