// 樹的遍歷.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;
}
樹的遍歷
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.