~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

先序遍历:(先左后右

先左树再右树遍历

void PreOrderTraverse(BitTree T)
{
	if(T)
	{
		cout<<T->data<<endl;
		PreOrderTraverse(T->left);
		PreOrderTraverse(T->right);
	}
}

 先序遍历很有点类似于栈,可以用栈来模拟:

/*这里的树结点是通过栈来建立的,只用于普通测试*/

void g(TreeNode *root)
{
	TreeNode * stack[MaxSize];
	int top;
	TreeNode *p;
	top=0;
	p=root;
	while(p!=NULL || top>0)
	{
		while(p!=NULL)
		{
			cout<<(*p).val<<endl;
			stack[top++]=p;
			p=(*p).left;
		};
		if(top>0)
		{
			p=stack[--top];
			p=(*p).right;
		}
	}
}

  

 

中序遍历:

444

 

后序遍历:

 

posted on 2016-03-02 04:06  LuoTian  阅读(218)  评论(0编辑  收藏  举报