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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

用c语言编译二叉树,C语言实现二叉树的基本操作

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用c语言编译二叉树,C语言实现二叉树的基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我在前面的博客中解說了鏈表、棧和隊列。這些數據結構事實上都是線性表,而且給出了具體的實現。

從今天開始。我們將要來學習樹,樹作為一種數據結構我們常常會用到,作為起步和基礎。我們先來實現二叉樹。也就是每一個節點有不超過2個子節點的樹。對于樹的操作,最主要的創建、遍歷、求樹高、節點數等。代碼上傳至 https://github.com/chenyufeng1991/BinaryTree?。

(1)節點的定義

typedef struct BTNode{

int data;

struct BTNode *lChild;

struct BTNode *rChild;

}BiTNode;

(2)二叉樹的創建

//先序創建二叉樹

int CreateBiTree(BiTNode **T)

{

int ch;

scanf("%d",&ch);

if (ch == -1)

{

*T = NULL;

return 0;

}

else

{

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

if (T == NULL)

{

printf("failed

");

return 0;

}

else

{

(*T)->data = ch;

printf("輸入%d的左子節點:",ch);

CreateBiTree(&((*T)->lChild));

printf("輸入%d的右子節點:",ch);

CreateBiTree((&(*T)->rChild));

}

}

return 1;

}

(3)先序遍歷二叉樹

//先序遍歷二叉樹

void PreOrderBiTree(BiTNode *T)

{

if (T == NULL)

{

return;

}

else

{

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

PreOrderBiTree(T->lChild);

PreOrderBiTree(T->rChild);

}

}

(4)中序遍歷二叉樹

//中序遍歷二叉樹

void MiddleOrderBiTree(BiTNode *T)

{

if (T == NULL)

{

return;

}

else

{

MiddleOrderBiTree(T->lChild);

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

MiddleOrderBiTree(T->rChild);

}

}

(5)興許遍歷二叉樹

//興許遍歷二叉樹

void PostOrderBiTree(BiTNode *T)

{

if (T == NULL)

{

return;

}

else

{

PostOrderBiTree(T->lChild);

PostOrderBiTree(T->rChild);

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

}

}

(6)二叉樹的深度

//二叉樹的深度

int TreeDeep(BiTNode *T)

{

int deep = 0;

if (T != NULL)

{

int leftdeep = TreeDeep(T->lChild);

int rightdeep = TreeDeep(T->rChild);

deep = leftdeep >= rightdeep?leftdeep+1:rightdeep+1;

}

return deep;

}

(7)葉子節點個數

//葉子節點個數

int LeafCount(BiTNode *T)

{

static int count;

if (T != NULL)

{

if (T->lChild == NULL && T->rChild == NULL)

{

count++;

}

LeafCount(T->lChild);

LeafCount(T->rChild);

}

return count;

}

(8)測試函數

//主函數

int main(int argc,const char *argv[])

{

BiTNode *T;

int depth,leafCount = 0;

printf("請輸入第一個節點的值,-1表示沒有葉節點:

");

CreateBiTree(&T);

printf("先序遍歷二叉樹:");

PreOrderBiTree(T);

printf("

");

printf("中序遍歷二叉樹:");

MiddleOrderBiTree(T);

printf("

");

printf("興許遍歷二叉樹:");

PostOrderBiTree(T);

printf("

");

depth = TreeDeep(T);

printf("樹的深度為:%d

",depth);

leafCount = LeafCount(T);

printf("葉子節點個數:%d

",leafCount);

return 0;

}

總結

以上是生活随笔為你收集整理的用c语言编译二叉树,C语言实现二叉树的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色黄大色黄女片免费中国 | 在线观看黄色免费视频 | 越南少妇做受xxx片 亚洲av综合色区无码一二三区 | 久久国产精品区 | 国产精品毛片av | av一二区 | 懂色一区二区三区免费观看 | 男女草比视频 | 国产乱子伦农村叉叉叉 | 97久久免费视频 | 99国产视频 | 国产精品久久久久久妇女 | 尤物视频在线观看视频 | 国产精品入口免费 | 成人久久精品人妻一区二区三区 | 精品无码在线视频 | 少妇视频一区 | 中文字幕亚洲乱码 | 露胸app | 中文在线视频观看 | 久久九九免费 | 麻豆精品国产精华精华液好用吗 | 亚洲精品在线观看视频 | 玩偶姐姐在线看 | 欧美v亚洲 | 成人看片黄a免费看视频 | 久久不雅视频 | 成人午夜视频在线观看 | 红色假期黑色婚礼2 | 日本午夜视频 | 国产又粗又大又黄 | 国产精品久久久久久亚洲调教 | 欧美人妻少妇一区二区三区 | 大肉大捧一进一出好爽动态图 | 中文字幕精品久久久 | 手机在线小视频 | 91gao | 亚洲无限看| 欧洲女性下面有没有毛发 | 久久久777| 亚洲一区二区三区视频 | 一区两区小视频 | 成人免费播放视频 | 国产乡下妇女做爰毛片 | 成人免费网站在线观看 | 视色影视 | 天天草天天 | 精品一区二区三区久久 | 香蕉视频色 | 日韩成人在线一区 | 久久国产精品一区 | 久久久久精彩视频 | 日本免费色视频 | 久久精品视频8 | 69色堂| 五月天国产在线 | 黄色调教视频 | av在线男人天堂 | 午夜视频网 | 美女撒尿无遮挡网站 | 成人网一区 | 熟妇高潮一区二区三区在线播放 | 四虎精品在永久在线观看 | 日本高清免费观看 | 波多野结衣在线视频播放 | 日本激情影院 | 日日摸夜夜添狠狠添久久精品成人 | 国产欧美一区二区精品忘忧草 | 亚洲一区二区国产 | 精品人妻无码一区二区 | 亚洲av日韩av在线观看 | 亚洲污视频 | 激情插插插 | 娇妻之欲海泛舟无弹窗笔趣阁 | 少妇在线观看 | 国产乱码精品一区二区三区中文 | 成人性视频网 | 亚洲AV成人无码电影在线观看 | 国产精品人成 | 性开放淫合集 | 国产欧美日韩专区 | 在线免费| 中文字幕有码在线观看 | 日本在线观看一区 | 久久精品在线免费观看 | 国产精品视频 | 中国黄色1级片 | 欧美日韩国产一区二区 | 女同hd系列中文字幕 | 天天躁日日躁bbbbb | 中文字幕一区二区三区精品 | 手机看片日韩日韩 | 久久精品一区二区三区不卡牛牛 | 久久久久人妻一道无码AV | 麻豆一区二区三区在线观看 | 亚洲熟妇色自偷自拍另类 | 日少妇的逼| 免费欧美一区 | 亚洲人性生活视频 |