統(tǒng)計(jì)C語(yǔ)言二叉樹(shù)中葉子結(jié)點(diǎn)個(gè)數(shù)
樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu),它是由n(n>=0)個(gè)有限結(jié)點(diǎn)組成一個(gè)具有層次關(guān)系的集合。把它叫做樹(shù)是因
為它看起來(lái)像一棵倒掛的樹(shù),也就是說(shuō)它是根朝上,而葉朝下的,下面我們就用簡(jiǎn)單小栗子來(lái)簡(jiǎn)單說(shuō)明關(guān)于統(tǒng)計(jì)C語(yǔ)言二叉樹(shù)中葉子結(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)建二叉樹(shù) 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); ?? ?} } ? //先序遍歷二叉樹(shù) void printDLR(BiTree BT) { ?? ?if(BT) ?? ?{ ?? ??? ?printf("%c ",BT->data); ?? ??? ?printDLR(BT->left); ?? ??? ?printDLR(BT->right); ?? ?} } ? //統(tǒng)計(jì)二叉樹(shù)結(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("二叉樹(shù)結(jié)點(diǎn)的個(gè)數(shù):%d\n",count); }
按照先序遍歷的方式來(lái)輸入二叉樹(shù)結(jié)點(diǎn),若孩子結(jié)點(diǎn)為空,則輸入空格。
輸入:
ABD E CF
返回結(jié)果:
先序遍歷:
A B D E C F
二叉樹(shù)結(jié)點(diǎn)的個(gè)數(shù):
3
葉子結(jié)點(diǎn)分別是:
D、E、F
到此這篇關(guān)于統(tǒng)計(jì)C語(yǔ)言二叉樹(shù)中葉子結(jié)點(diǎn)個(gè)數(shù)的文章就介紹到這了,更多相關(guān)統(tǒng)計(jì)二叉樹(shù)中葉子結(jié)點(diǎn)個(gè)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)系列篇二叉樹(shù)的遍歷
- C語(yǔ)言實(shí)現(xiàn)線索二叉樹(shù)的前中后創(chuàng)建和遍歷詳解
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之二叉鏈表創(chuàng)建二叉樹(shù)
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)先序、中序、后序及層次四種遍歷
- C語(yǔ)言中二叉樹(shù)的后序遍歷詳解
- C語(yǔ)言實(shí)現(xiàn)二叉樹(shù)層次遍歷介紹
- C語(yǔ)言二叉樹(shù)的遍歷示例介紹
- C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)系列篇二叉樹(shù)的概念及滿二叉樹(shù)與完全二叉樹(shù)
相關(guān)文章
C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)管理系統(tǒng)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易掃雷游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03C到C++的升級(jí)關(guān)系及區(qū)別實(shí)例探究
這篇文章主要為大家介紹了C到C++的升級(jí)關(guān)系及區(qū)別實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01基于Matlab實(shí)現(xiàn)抖音小游戲蘋(píng)果蛇
最近抖音上蘋(píng)果蛇小游戲大火,為了證明MATLAB無(wú)所不能,咋能不跟風(fēng)做一個(gè)?文中詳細(xì)講解了游戲的實(shí)現(xiàn)步驟,感興趣的小伙伴可以嘗試一下2022-06-06