統(tǒng)計(jì)C語言二叉樹中葉子結(jié)點(diǎn)個(gè)數(shù)
樹是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合。把它叫做樹是因
為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的,下面我們就用簡(jiǎn)單小栗子來簡(jiǎn)單說明關(guān)于統(tǒng)計(jì)C語言二叉樹中葉子結(jié)點(diǎn)個(gè)數(shù)的方法吧
簡(jiǎn)單小栗子:
#include<stdio.h> #include<stdlib.h> ? typedef char ElemType; typedef struct BTNode { ?? ?ElemType data; ?? ?struct BTNode *left; ?? ?struct BTNode *right; }BTNode,*BiTree; ? //創(chuàng)建二叉樹 void createBTNode(BiTree &BT) { ?? ?ElemType ch; ?? ?scanf("%c",&ch); ?? ?if(ch==' ') ?? ??? ?BT=NULL; ?? ?else ?? ?{ ?? ??? ?BT = (BTNode*)malloc(sizeof(BTNode)); ?? ??? ?BT->data= ch; ?? ??? ?createBTNode(BT->left); ?? ??? ?createBTNode(BT->right); ?? ?} } ? //先序遍歷二叉樹 void printDLR(BiTree BT) { ?? ?if(BT) ?? ?{ ?? ??? ?printf("%c ",BT->data); ?? ??? ?printDLR(BT->left); ?? ??? ?printDLR(BT->right); ?? ?} } ? //統(tǒng)計(jì)二叉樹結(jié)點(diǎn)個(gè)數(shù) void countLeaves(BiTree BT,int &count) { ?? ?if(BT) ?? ?{ ?? ??? ?if(BT->left==NULL && BT->right==NULL) ?? ??? ?count++; ?? ??? ?else{ ?? ??? ??? ?countLeaves(BT->left,count); ?? ??? ??? ?countLeaves(BT->right,count); ?? ??? ?} ?? ?} } ? void main() { ?? ?BTNode *BT; ?? ?int count=0; ?? ?createBTNode(BT); ?? ?printf("先序遍歷:"); ?? ?printDLR(BT); ?? ?printf("\n"); ?? ?countLeaves(BT,count); ?? ?printf("二叉樹結(jié)點(diǎn)的個(gè)數(shù):%d\n",count); }
按照先序遍歷的方式來輸入二叉樹結(jié)點(diǎn),若孩子結(jié)點(diǎn)為空,則輸入空格。
輸入:
ABD E CF
返回結(jié)果:
先序遍歷:
A B D E C F
二叉樹結(jié)點(diǎn)的個(gè)數(shù):
3
葉子結(jié)點(diǎn)分別是:
D、E、F
到此這篇關(guān)于統(tǒng)計(jì)C語言二叉樹中葉子結(jié)點(diǎn)個(gè)數(shù)的文章就介紹到這了,更多相關(guān)統(tǒng)計(jì)二叉樹中葉子結(jié)點(diǎn)個(gè)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02C語言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07C到C++的升級(jí)關(guān)系及區(qū)別實(shí)例探究
這篇文章主要為大家介紹了C到C++的升級(jí)關(guān)系及區(qū)別實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01