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

C語(yǔ)言實(shí)現(xiàn)二叉鏈表存儲(chǔ)

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

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

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

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
 
typedef int ElemType;//數(shù)據(jù)類型
//定義二叉樹結(jié)構(gòu),與單鏈表相似,多了一個(gè)右孩子結(jié)點(diǎn)
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é)點(diǎn):",ch);
 CreateBiTree(&(*T)->lChild);
 printf("輸入%d的右子結(jié)點(diǎn):",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é)點(diǎn)個(gè)數(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("請(qǐng)輸入第一個(gè)結(jié)點(diǎn)的值,-1表示沒有葉結(jié)點(diǎn):\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é)點(diǎn)個(gè)數(shù)為:%d",num);
 printf("\n");
 return 0;
}

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    基于C++實(shí)現(xiàn)簡(jiǎn)單的日期計(jì)算機(jī)

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

    QT實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘

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

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

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

    C語(yǔ)言中.與->的用法介紹

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

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

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

最新評(píng)論

通辽市| 宁远县| 漳平市| 玉山县| 胶南市| 永清县| 德兴市| 于都县| 元谋县| 什邡市| 五大连池市| 荆州市| 霞浦县| 綦江县| 铅山县| 荔浦县| 东兰县| 固原市| 建宁县| 山东省| 民和| 通州市| 德令哈市| 张掖市| 庆元县| 双桥区| 赤城县| 巫山县| 金昌市| 太仓市| 徐州市| 深州市| 大姚县| 兴义市| 德江县| 济宁市| 固始县| 孙吴县| 扶余县| 乐都县| 婺源县|