日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)

發布時間:2023/12/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言實現二叉樹的創建以及遍歷

#include

typedef char ElemType;

typedef struct BiTNode

{

ElemType data;

struct BiTNode *lchild;

struct BiTNode *rchild;

} BiTNode,*BiTree;

//先序建立二叉樹方法一

void CreateBiTreeMethod1(BiTree *T);

//先序建立二叉樹方法二

BiTree CreateBiTreeMethod2();

//先序遍歷二叉樹

void PreOrderTraverse(BiTree T);

//中序遍歷

void InOrderTraverse(BiTree T);

//后序遍歷

void PostOrderTraverse(BiTree T);

int main()

{

BiTree T = NULL;

//CreateBiTreeMethod1(&T);

//PreOrderTraverse(T);

T = CreateBiTreeMethod2();

PreOrderTraverse(T);

return 0;

}

//先序建立二叉樹方法一

void CreateBiTreeMethod1(BiTree *T){

char ch;

scanf("%c",&ch);

if('#' == ch){

*T = NULL;

}else{

*T = (BiTree)malloc(sizeof(BiTNode));

(*T)->data = ch;

CreateBiTreeMethod1(&((*T)->lchild));

CreateBiTreeMethod1(&((*T)->rchild));

}

}

//先序建立二叉樹方法二

BiTree CreateBiTreeMethod2(){

char ch;

scanf("%c",&ch);

BiTree T;

if('#' == ch){

T = NULL;

}else{

T = (BiTree)malloc(sizeof(BiTNode));

T->data = ch;

T->lchild = CreateBiTreeMethod2();

T->rchild = CreateBiTreeMethod2();

}

return T;

}

//先序遍歷二叉樹

void PreOrderTraverse(BiTree T)

{

if(T)

{

printf("%c",T->data);

PreOrderTraverse(T->lchild);

PreOrderTraverse(T->rchild);

}

}

//中序遍歷

void InOrderTraverse(BiTree T)

{

if(T)

{

PreOrderTraverse(T->lchild);

printf("%c",T->data);

PreOrderTraverse(T->rchild);

}

}

//后序遍歷

void PostOrderTraverse(BiTree T)

{

if(T)

{

PreOrderTraverse(T->lchild);

PreOrderTraverse(T->rchild);

printf("%c",T->data);

}

}

總結

以上是生活随笔為你收集整理的c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。