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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)

發(fā)布時間:2023/11/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天寫的是二叉樹操作的實驗,這個實驗有三個部分:

①建立二叉樹,采用二叉鏈表結(jié)構(gòu)

②先序、中序、后續(xù)遍歷二叉樹,輸出節(jié)點值

③銷毀二叉樹

?

二叉樹的節(jié)點結(jié)構(gòu)定義

typedef struct BiTNode //二叉樹的節(jié)點結(jié)構(gòu) {char data; //此處用char 因為數(shù)據(jù)設用字母struct BiTNode * Lchild, * Rchild; //左右孩子指針 } BiTree;

  

基本操作函數(shù)定義部分

BiTree * CreateBiTree(BiTree * T); //創(chuàng)建二叉樹 void PreOrderT(BiTree * T); //先序遍歷 void InOrderT(BiTree * T); //中序遍歷 void PostOrder(BiTree * T); //后序遍歷 void DestroyBiTree(BiTree * T); //銷毀二叉樹

  

?函數(shù)實現(xiàn)部分

BiTree * CreateBiTree(BiTree * T) {char ch;scanf("%c",&ch);if(ch=='#')return 0; //輸入#表示為空節(jié)點//因為傳進來的參數(shù)是一個樹節(jié)點的指針,所以下面這句代碼可以理解成實例化該指針指向的樹節(jié)點T =(BiTree *)malloc(sizeof(BiTree));T->data=ch; //給節(jié)點的數(shù)據(jù)域賦值T->Lchild=CreateBiTree(T->Lchild); //遞歸創(chuàng)建左子樹T->Rchild=CreateBiTree(T->Rchild); //遞歸創(chuàng)建右子樹return T; } void PreOrderT(BiTree * T) {if(T) //如果該樹節(jié)點存在{printf("%c",T->data); //先序遍歷PreOrderT(T->Lchild);PreOrderT(T->Rchild);} } void InOrderT(BiTree * T) {if(T) //如果該樹節(jié)點存在{InOrderT(T->Lchild); //中序遍歷printf("%c",T->data);InOrderT(T->Rchild);} } void PostOrder(BiTree * T) {if(T) //如果該樹節(jié)點存在{PostOrder(T->Lchild);PostOrder(T->Rchild);printf("%c",T->data);} } void DestroyBiTree(BiTree * T) {if(T) //如果T存在{DestroyBiTree(T->Lchild);DestroyBiTree(T->Rchild);free(T);} }

  

?

主函數(shù)測試部分

int main(void) {BiTree * T; //先定義一個樹節(jié)點指針,指向第一個樹節(jié)點,也就是根節(jié)點printf("請輸入二叉樹的數(shù)據(jù),并以#為空節(jié)點\n");T=CreateBiTree(T);printf("該樹的先序遍歷結(jié)果為:");PreOrderT(T);printf("\n");printf("該樹的中序遍歷結(jié)果為:");InOrderT(T);printf("\n");printf("該樹的后序遍歷結(jié)果為:");PostOrder(T);printf("\n");DestroyBiTree(T);return 0; }

  效果圖

好了,這天真冷。。。呼呼

gg,又不夠字數(shù),老規(guī)矩,湊字數(shù)

山不在高,有仙則名。水不在深,有龍則靈。斯是陋室,惟吾德馨。苔痕上階綠,草色入簾青。談笑有鴻儒,往來無白丁。可以調(diào)素琴,金經(jīng)。絲竹亂耳,案牘之勞形。南陽諸葛廬,西蜀子云亭。孔子云:何陋之有?

轉(zhuǎn)載于:https://www.cnblogs.com/yellowgg/p/7856950.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的C语言递归实现二叉树(二叉链表)的三种遍历和销毁操作(实验)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。