網站首頁 編程語言 正文
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//先序遍歷
void PreOrder(BiTree t){
if(t!=NULL){
printf("%c ",t->data);//訪問根節點
PreOrder(t->lchild); //訪問左節點
PreOrder(t->rchild); //訪問右節點
}
}
//中序遍歷
void InOrder(BiTree t){
if(t!=NULL){
InOrder(t->lchild); //訪問左節點
printf("%c ",t->data);//訪問根節點
InOrder(t->rchild); //訪問右節點
}
}
//后序遍歷
void PostOrder(BiTree t){
if(t!=NULL){
PostOrder(t->lchild); //訪問左節點
PostOrder(t->rchild); //訪問右節點
printf("%c ",t->data);//訪問根節點
}
}
//統計二叉樹節點的總數目
int BiTreeLength(BiTree root)
{
if(root==NULL) return 0;
return 1+BiTreeLength(root->lchild) + BiTreeLength(root->rchild);
}
//初始化樹節點
void InitBiTree(BiTree &root){
root=(BiTree)malloc(sizeof(BiTNode));
root->data={'A'};
root->lchild=root->rchild=NULL;
BiTNode *p1=(BiTNode *)malloc(sizeof(BiTNode));
p1->data={'B'};
p1->lchild=p1->rchild=NULL;
root->lchild=p1;
BiTNode *p2=(BiTNode *)malloc(sizeof(BiTNode));
p2->data={'C'};
p2->lchild=p2->rchild=NULL;
root->rchild=p2;
BiTNode *p3=(BiTNode *)malloc(sizeof(BiTNode));
p3->data={'D'};
p3->lchild=p3->rchild=NULL;
p1->lchild=p3;
BiTNode *p4=(BiTNode *)malloc(sizeof(BiTNode));
p4->data={'E'};
p4->lchild=p4->rchild=NULL;
p1->rchild=p4;
BiTNode *p5=(BiTNode *)malloc(sizeof(BiTNode));
p5->data={'F'};
p5->lchild=p5->rchild=NULL;
p2->lchild=p5;
BiTNode *p6=(BiTNode *)malloc(sizeof(BiTNode));
p6->data={'G'};
p6->lchild=p6->rchild=NULL;
p2->rchild=p6;
}
int main(){
BiTree root=NULL;
InitBiTree(root);
PreOrder(root);
printf("\n");
InOrder(root);
printf("\n");
PostOrder(root);
printf("\n");
int cnt=BiTreeLength(root);
printf("二叉樹的深度為:%d\n",cnt);
return 0;
}
原文鏈接:https://blog.csdn.net/qq_44223394/article/details/125857243
- 上一篇:Linux手工配置靜態ip地址
- 下一篇:C語言實現KMP算法+優化
相關推薦
- 2022-11-14 Python中__init__.py文件的作用_python
- 2022-03-27 C語言中浮點數的精度丟失問題解決_C 語言
- 2023-03-11 Golang的Fork/Join實現代碼_Golang
- 2024-03-15 npm install報錯 Fix the upstream dependency conflict
- 2023-07-07 Minio提示:io.minio.errors.InvalidResponseException:
- 2022-05-22 xampp安裝后Apache無法啟動解決辦法_Linux
- 2022-07-26 Python+Seaborn繪制分布圖的示例詳解_python
- 2022-12-11 瀏覽器控制臺報錯Failed?to?load?module?script:解決方法_nginx
- 最近更新
-
- 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同步修改后的遠程分支