樹的遍歷

// 樹的遍歷.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;
}


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