網站首頁 編程語言 正文
樹是一種非線性的數據結構,它是由n(n>=0)個有限結點組成一個具有層次關系的集合。把它叫做樹是因
為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的,下面我們就用簡單小栗子來簡單說明關于統計C語言二叉樹中葉子結點個數的方法吧
簡單小栗子:
#include<stdio.h> #include<stdlib.h> ? typedef char ElemType; typedef struct BTNode { ?? ?ElemType data; ?? ?struct BTNode *left; ?? ?struct BTNode *right; }BTNode,*BiTree; ? //創建二叉樹 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); ?? ?} } ? //統計二叉樹結點個數 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("二叉樹結點的個數:%d\n",count); }
按照先序遍歷的方式來輸入二叉樹結點,若孩子結點為空,則輸入空格。
輸入:
ABD ?E ?CF
返回結果:
先序遍歷:
A B D E C F
二叉樹結點的個數:
3
葉子結點分別是:
D、E、F
原文鏈接:https://blog.csdn.net/qq_61706112/article/details/121360386
相關推薦
- 2022-09-01 ASP.NET?Core通用主機的系統配置_實用技巧
- 2023-06-03 C++一個函數如何調用其他.cpp文件中的函數_C 語言
- 2022-11-02 Qt5.14.2使用虛擬鍵盤的關鍵代碼_C 語言
- 2022-05-10 總結:虛擬DOM和生命周期
- 2022-11-28 Spark?GraphX?分布式圖處理框架圖算法詳解_相關技巧
- 2022-05-20 利用PyQt5模擬實現網頁鼠標移動特效_python
- 2022-05-21 C語言實現銀行管理系統(文件操作)_C 語言
- 2023-11-20 Linux、jetson nano、JTX、英偉達、nVidia查看cuda版本
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支