遍历二叉树(例题及代码)

遍历二叉树

1、遍历方法:
先序遍历(DLR):根结点、左子树、右子树;
中序遍历(LDR):左子树、根结点、右子树;
后序遍历(LRD):左子树、右子树、根结点;
2、给出一个二叉树,试写出其先序、中序、后序遍历
例如:
遍历二叉树(例题及代码)_第1张图片
3、给出先序遍历和中序遍历,可求后序遍历;给出中序遍历和后序遍历,可求出先序遍历;注意:给出先序遍历和后序遍历无法确定唯一的二叉树,故无法确定其中序遍历;
例如:遍历二叉树(例题及代码)_第2张图片
4、给出中缀表达式,求其波兰表达式(逆波兰表达式)
方法:
(1)在中缀表达式的基础上完善括号
(2)根据表达式确定二叉树
(3)根据二叉树写出波兰表达式
例如:遍历二叉树(例题及代码)_第3张图片

一、前序遍历二叉树

void PreOrderTraverse(BiTree T)
{
	
	if (T != NULL)
	{
		cout << T->data;
		PreOrderTraverse(T->lchild);
		PreOrderTraverse(T->rchild);
	}
}

二、中序遍历二叉树

void InOrderTraverse(BiTree T)
{
	if (T != NULL)
	{
		InOrderTraverse(T->lchild);
		cout << T->data;
		InOrderTraverse(T->rchild);
	}
}

三、后序遍历二叉树

void PostOrderTraverse(BiTree T)
{
	if (T != NULL)
	{
		PostOrderTraverse(T->lchild);
		PostOrderTraverse(T->rchild);
		cout << T->data;
	}
}

你可能感兴趣的:(数据结构,二叉树,数据结构)