#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include<stdio.h>
#include <string.h>
/*
typedef struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
};*/
//第一种表示方法 :二叉链表示法
struct BiTNode
{
int data;
struct BiTNode *lchild,*rchild;
};
typedef struct BiTNode BiTNode;
typedef struct BiTNode* BITree;
//先序遍历
void preOrder(BiTNode*root)
{
if (root==NULL)
{
return;
}
printf("%d ",root->data);
preOrder(root->lchild);
preOrder(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);
}
void display01()
{
BiTNode t1,t2,t3,t4,t5,t6;
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));
memset(&t6,0,sizeof(BiTNode));
t1.data = 1;
t2.data = 2;
t3.data = 3;
t4.data = 4;
t5.data = 5;
t6.data = 6;
//建立关系
t1.lchild = &t2;
t1.rchild = &t3;
t2.lchild = &t4;
t2.rchild = &t5;
t3.lchild = &t6;
/*树的遍历*/
printf("\n先序遍历\n");
preOrder(&t1);
printf("\n中序遍历\n");
inOrder(&t1);
printf("\n后序遍历\n");
postOrder(&t1);
}
int main()
{
display01();
system("pause");
return 0;
}
二叉树的遍历本质剖析
最新推荐文章于 2024-07-19 15:53:07 发布