#include<stdio.h>
#include<stdlib.h>
typedef struct treeNode
{
struct treeNode *left,*right;
int data;
}treeNode;
treeNode* createTree(){
treeNode *node[10];
int i = 0;
for(i = 0 ; i<10;i++)
{
node[i] = (treeNode*)malloc(sizeof(treeNode));
node[i]->data = i;
node[i]->left = NULL;
node[i]->right = NULL;
}
i=0;
while(2*i+1<10)
{
node[i] ->left = node[2*i+1];
if(2*i+2 < 10)
node[i] ->right= node[2*i+2];
i++;
}
return node[0];
}
void inOrderVisit(treeNode *root)
{
if(root){
if(root->left)
inOrderVisit(root->left);
printf("%d ", root->data);
if(root->right)
inOrderVisit(root->right);
}
}//中序遍历
void preOrderVisit(treeNode *root)
{
if(root){
printf("%d ", root->data);
if(root->left)
preOrderVisit(root->left);
if(root->right)
preOrderVisit(root->right);
}
}//先序遍历
void posOrderVisit(treeNode *root)
{
if(root){
if(root->left)
posOrderVisit(root->left);
if(root->right)
posOrderVisit(root->right);
printf("%d ", root->data);
}
}//后序遍历
void main()
{
treeNode *root;
root = createTree();
inOrderVisit(root);
printf("\n");
preOrderVisit(root);
printf("\n");
posOrderVisit(root);
}
二叉树的三种遍历
最新推荐文章于 2022-04-20 18:35:28 发布