一、对树的理解
树也就是一个节点的集合,只不过这个集合有一个特征,树有一个根节点,左子树,右子树(有但不是一定有)可以是空树即没有节点,也可以是只有一个根节点,或者只有左、右子树。对于树重要理解二叉树,下边给出二叉树的标准定义
typedef struct BTNode
{
char data;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode;
对于二叉树的遍历分为前序遍历,中序遍历,后序遍历和层次遍历
前序遍历
void preOrder(BTNode *p)
{
if(p != NULL)
{
visit(p);
preOrder(p->lchild);
preOrder(p->rchild);
}
}
中序遍历
<pre name="code" class="html">void postOrder(BTNode *p)
{
if(p != NULL)
{
postOrder(p->lchild);
postOrder(p->rchild);
visit(p);
}
}
关于二叉树的很多题目都是基于他的这三种遍历的,只要牢记这个,万变不离其宗。