最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)二叉鏈表存儲

 更新時間:2018年08月18日 09:17:34   作者:data_heng  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)二叉鏈表存儲的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

利用二叉鏈表存儲,并且利用遞歸的方法實現(xiàn)二叉樹的遍歷(前序遍歷、中序遍歷和后續(xù)遍歷)操作。

c語言具體實現(xiàn)代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
 
typedef int ElemType;//數(shù)據(jù)類型
//定義二叉樹結(jié)構(gòu),與單鏈表相似,多了一個右孩子結(jié)點
typedef struct BiTNode
{
 ElemType data;
 struct BiTNode *lChild,*rChild;
}BiTNode,*BiTree;
 
//先序創(chuàng)建二叉樹
int CreateBiTree(BiTree *T)
{
 ElemType ch;
 ElemType temp;
 scanf("%d",&ch);
 temp=getchar();
 if(ch==-1)
 {
 *T=NULL;
 }
 else
 {
 *T=(BiTree)malloc(sizeof(BiTNode));
 if(!(*T))
 {
 exit(-1);
 }
 (*T)->data=ch;
 printf("輸入%d的左子結(jié)點:",ch);
 CreateBiTree(&(*T)->lChild);
 printf("輸入%d的右子結(jié)點:",ch);
 CreateBiTree(&(*T)->rChild);
 }
 return 1;
}
 
//先序遍歷二叉樹
void TraverseBiTree(BiTree T)
{
 if(T==NULL)
 {
 return;
 }
 printf("%d",T->data);
 TraverseBiTree(T->lChild);
 TraverseBiTree(T->rChild);
}
 
//中序遍歷二叉樹
void InOrderBiTree(BiTree T)
{
 if(T==NULL)
 {
 return;
 }
 InOrderBiTree(T->lChild);
 printf("%d",T->data);
 InOrderBiTree(T->rChild);
}
 
//后序遍歷二叉樹
void PostOrderBiTree(BiTree T)
{
 if(T==NULL)
 {
 return;
 }
 PostOrderBiTree(T->lChild);
 PostOrderBiTree(T->rChild);
 printf("%d",T->data);
}
 
//二叉樹的深度
int TreeDeep(BiTree T)
{
 int deep=0;
 if(T)
 {
 int leftdeep=TreeDeep(T->lChild);
 int rightdeep=TreeDeep(T->rChild);
 deep=leftdeep>=rightdeep?leftdeep+1:rightdeep+1;
 }
 return deep;
}
 
//求二叉樹葉子結(jié)點個數(shù)
int Leafcount(BiTree T,int &num)
{
 if(T)
 {
 if(T->lChild==NULL&&T->rChild==NULL)
 {
 num++;
 }
 Leafcount(T->lChild,num);
 Leafcount(T->rChild,num);
 }
 return num;
}
 
//主函數(shù)
int main(void)
{
 BiTree T;
 BiTree *p=(BiTree *)malloc(sizeof(BiTree));
 int deepth,num=0;
 printf("請輸入第一個結(jié)點的值,-1表示沒有葉結(jié)點:\n");
 CreateBiTree(&T);
 printf("先序遍歷二叉樹:\n");
 TraverseBiTree(T);
 printf("\n");
 printf("中序遍歷二叉樹:\n");
 InOrderBiTree(T);
 printf("\n");
 printf("后序遍歷二叉樹:\n");
 PostOrderBiTree(T);
 printf("\n");
 deepth=TreeDeep(T);
 printf("數(shù)的深度為:%d",deepth);
 printf("\n");
 Leafcount(T,num);
 printf("數(shù)的葉子結(jié)點個數(shù)為:%d",num);
 printf("\n");
 return 0;
}

得到的結(jié)果如下圖所示:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何區(qū)分C++中的inline和#define宏

    如何區(qū)分C++中的inline和#define宏

    這篇文章主要介紹了如何區(qū)分C++中的inline和#define宏,文中講解非常詳細,代碼幫助大家更好的參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 通過c++的sort函數(shù)實現(xiàn)成績排序功能

    通過c++的sort函數(shù)實現(xiàn)成績排序功能

    這篇文章主要介紹了通過c++的sort函數(shù)實現(xiàn)成績排序,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Qt實現(xiàn)獲取文件大小與磁盤空間大小

    Qt實現(xiàn)獲取文件大小與磁盤空間大小

    這篇文章主要為大家詳細介紹了如何使用Qt實現(xiàn)獲取文件大小與磁盤空間大小,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 利用C語言實現(xiàn)順序表的實例操作

    利用C語言實現(xiàn)順序表的實例操作

    順序表是線性表中的一種重要的數(shù)據(jù)結(jié)構(gòu),也是最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),所以他不僅是學(xué)習(xí)中的重點,也是應(yīng)用開發(fā)非常常用的一種數(shù)據(jù)結(jié)構(gòu)。這篇文章介紹如何利用C語言實現(xiàn)順序表。
    2016-08-08
  • c++實現(xiàn)新年煙花效果完整代碼

    c++實現(xiàn)新年煙花效果完整代碼

    這篇文章主要給大家介紹了關(guān)于c++實現(xiàn)新年煙花效果的相關(guān)資料,文中給出了詳細完整代碼,適合初學(xué)C語言/C++的小伙伴學(xué)習(xí)研究,需要的朋友可以參考下
    2023-11-11
  • 基于C++實現(xiàn)簡單的日期計算機

    基于C++實現(xiàn)簡單的日期計算機

    這篇文章主要為大家詳細介紹了如何基于C++實現(xiàn)簡單的日期計算機,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • QT實現(xiàn)動態(tài)時鐘

    QT實現(xiàn)動態(tài)時鐘

    這篇文章主要為大家詳細介紹了QT實現(xiàn)動態(tài)時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語言入門的一些基本資源推薦和程序語法概覽

    C語言入門的一些基本資源推薦和程序語法概覽

    這篇文章主要介紹了C語言入門的一些基本資源推薦和程序語法概覽,C語言是很多現(xiàn)代高級編程語言的基礎(chǔ),需要的朋友可以參考下
    2015-12-12
  • C語言中.與->的用法介紹

    C語言中.與->的用法介紹

    結(jié)構(gòu)體用點,結(jié)構(gòu)體指針用箭頭,簡單的說,就是一個快捷方式,一個語法糖,這篇文章主要介紹了C語言中.與->的區(qū)別及用法,需要的朋友可以參考下
    2023-05-05
  • Opencv實現(xiàn)畫筆功能

    Opencv實現(xiàn)畫筆功能

    這篇文章主要為大家詳細介紹了Opencv實現(xiàn)畫筆功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論

溆浦县| 万源市| 孟津县| 宝丰县| 云阳县| 比如县| 疏附县| 济阳县| 噶尔县| 石林| 当涂县| 华蓥市| 利津县| 平远县| 卢湾区| 金坛市| 通海县| 大悟县| 尉犁县| 临清市| 馆陶县| 日喀则市| 梅州市| 汕头市| 宁晋县| 濮阳市| 威信县| 贵定县| 宁化县| 嘉义县| 安化县| 大新县| 麦盖提县| 金溪县| 壶关县| 福建省| 怀化市| 县级市| 太湖县| 肇州县| 邳州市|