二叉树的创建与遍历

简介

代码

二叉树存储结构

typedef struct node
{
	char data;//数据域
	struct node* lchild;//左孩子指针域
	struct node* rchild;//右孩子指针域
}BTNode;

创建二叉树

BTNode* creatbintree()//前序创建二叉树
{
	BTNode* p;
	char c;
	cin >> c;
	if (c == '0')	p = NULL;//0表示空节点
	else
	{
		p = new BTNode;
		p->data = c;
		p->lchild = creatbintree();
		p->rchild = creatbintree();
	}
	return p;
}

遍历二叉树

1.先序遍历

void PreOrder(BTNode* p)//先序遍历
{
	if (p)
	{
		cout << p->data << " ";
		PreOrder(p->lchild);
		PreOrder(p->rchild);
	}
}

2.中序遍历

void InOrder(BTNode* p)//中序遍历
{
	if (p)
	{
		InOrder(p->lchild);
		cout << p->data << " ";
		InOrder(p->rchild);
	}
}

3.后序遍历

void PostOrder(BTNode* p)//后序遍历
{
	if (p)
	{
		PostOrder(p->lchild);
		PostOrder(p->rchild);
		cout << p->data << " ";
	}
}

运行结果

posted @ 2019-04-27 04:15  lioY3  阅读(212)  评论(0)    收藏  举报