1. 结构体尾部加指针
typedef struct node
{
int data;
struct node *rchild,*lchild;(指向的为结构体便作为结构体指针)
}node,*Node;
当你创建的是node T时,只能用T.data来表示数据
当你用Node指针创建时,Node T就可以用T->data来表示数据
2.遍历方法
- void PreOrderTraversal( BinTree BT ):先序----根、左子树、右子树;
- void InOrderTraversal( BinTree BT ): 中序—左子树、根、右子树;
- void PostOrderTraversal( BinTree BT ):后序—左子树、右子树、根
- void LevelOrderTraversal( BinTree BT ):层次遍历,从上到下、从左到右
3.if(T){}
如果T不为空,或者为真便执行后面的表达式。
4.递归 return
结束的仅仅是那一层调用,整个函数还是继续执行。
5.遍历 栈 递归
在二叉树的顺序遍历中,常常会发生先遇到的节点到后面再访问的情况,这和先进后出的栈
的结构很相似,因此在非递归的实现方法中,我们最常使用的数据结构就是栈
。
visit 函数 就相当于printf(“%d\t”,T->data)
非递归
int InitStack(SqStack &s)//定义的时候需要带&
InitStack(s)//调用的时候不需要
int push(SqStack &s,int data)
//出栈 , 出栈元素赋值给data
int pop(SqStack &s,int &data)