1. 程式人生 > >數據結構與算法第10周作業——二叉樹的創建和遍歷算法

數據結構與算法第10周作業——二叉樹的創建和遍歷算法

技術分享 truct order traverse eof 結構 後序遍歷 lib void

一、二叉樹的創建算法(遞歸方式)技術分享

二、二叉樹的先序、中序和後序遍歷算法

#include<stdio.h>
#include<stdlib.h>
typedef struct TNode
{
struct TNode *lchild;
int data;
struct TNode *rchild;
}TNode,*BTree;
void createBiTree(BTree &T)
{
char x;
scanf("%d",&x);
if(x!=0)
{
T=(TNode *)malloc(sizeof(TNode));
T->data=x;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
else
{
T=NULL;
}
}
void preOrderTraverse(BTree T)
{
if(T!=NULL)
{
printf("%d",T->data);
preOrderTraverse(T->lchild);
preOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BTree T)
{
if(T!=NULL)
{
InOrderTraverse(T->lchild);
printf("%d",T->data);
InOrderTraverse(T->rchild);
}
}
void AfterTraverse(BTree T)
{
if(T!=NULL)
{
AfterTraverse(T->lchild);
AfterTraverse(T->rchild);
printf("%d",T->data);

}
}
int main()
{
BTree T;
createBiTree(T);
printf("先序遍歷輸出結果為:");
preOrderTraverse(T);
printf("\n中序遍歷輸出結果為:");
InOrderTraverse(T);
printf("\n後序遍歷輸出結果為:");
AfterTraverse(T);
}

數據結構與算法第10周作業——二叉樹的創建和遍歷算法