树的遍历

// 树的遍历.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<stdlib.h>
//二叉链表示法  
typedef struct BiTNode
{
	int data;
	BiTNode *lchild, *rchild;
};
typedef struct BiTNode* Bitree;
//先序遍历
void PreOder(BiTNode *root)
{
	if (root==NULL)
	{
		return;
	}
	printf("%d ",root->data);
	//遍历左子树
	PreOder(root->lchild);
	//遍历右子树
	PreOder(root->rchild);

}
//中序遍历
void InOrder(BiTNode *root)
{
	if (root == NULL)
	{
		return;
	}

	//遍历左子树
	InOrder(root->lchild);
	printf("%d ", root->data);
	//遍历右子树
	InOrder(root->rchild);
}
//后序遍历
void PostOrder(BiTNode *root)
{
	if (root == NULL)
	{
		return;
	}

	//遍历左子树
	PostOrder(root->lchild);
	
	//遍历右子树
	PostOrder(root->rchild);
	printf("%d ", root->data);
}

int main()
{
		BiTNode t1, t2, t3, t4, t5;
		memset(&t1,0,sizeof(BiTNode));
		memset(&t2, 0, sizeof(BiTNode));
		memset(&t3, 0, sizeof(BiTNode));
		memset(&t4, 0, sizeof(BiTNode));
		memset(&t5, 0, sizeof(BiTNode));
		t1.data = 1;
		t2.data = 2;
		t3.data = 3;
		t4.data = 4;
		t5.data = 5;
		t1.lchild = &t2;
		t1.rchild = &t3;
		t2.lchild = &t4;
		t3.lchild = &t5;
		PreOder(&t1);
		printf("\npre\n");
		InOrder(&t1);
		printf("\nin\n");
		PostOrder(&t1);
		printf("\npost\n");
		system("pause");
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章