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

c語言_構建一個靜態(tài)二叉樹實現(xiàn)方法

 更新時間:2017年05月28日 11:11:57   投稿:jingxian  
下面小編就為大家?guī)硪黄猚語言_構建一個靜態(tài)二叉樹實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

第一、樹的構建

定義樹結構

struct BTNode { 
  char data; 
  struct BTNode* pLChild; 
  struct BTNode* pRChild; 
}; 

靜態(tài)方式創(chuàng)建一個簡單的二叉樹

struct BTNode* create_list() { 
 
  struct BTNode* pA = (struct BTNode*)malloc(sizeof(BTNode)); 
  struct BTNode* pB = (struct BTNode*)malloc(sizeof(BTNode)); 
  struct BTNode* pC = (struct BTNode*)malloc(sizeof(BTNode)); 
  struct BTNode* pD = (struct BTNode*)malloc(sizeof(BTNode)); 
  struct BTNode* pE = (struct BTNode*)malloc(sizeof(BTNode)); 
   
  pA->data = 'A'; 
  pB->data = 'B'; 
  pC->data = 'C'; 
  pD->data = 'D'; 
  pE->data = 'E';  
 
  pA->pLChild = pB; 
  pA->pRChild = pC; 
  pB->pLChild = pB->pRChild = NULL; 
 
  pC->pLChild = pD; 
  pC->pRChild = NULL; 
 
  pD->pLChild = NULL; 
  pD->pRChild = pE; 
 
  pE->pLChild = pE->pRChild = NULL; 
 
  return pA; 
} 

第二、樹的三種遍歷

1. 先序遍歷

//先序輸出 
void PreTravense(struct BTNode* pHead) { 
  if (NULL!= pHead) 
  { 
    printf("%c", pHead->data); 
    if (NULL!= pHead->pLChild) 
    { 
      PreTravense(pHead->pLChild); 
    } 
    if (NULL != pHead->pRChild) 
    { 
      PreTravense(pHead->pRChild); 
    } 
  } 
} 

2. 中序遍歷

//中序輸出 
void InTravense(struct BTNode* pHead) { 
  if (NULL != pHead) 
  { 
    if (NULL != pHead->pLChild) 
    { 
      PreTravense(pHead->pLChild); 
    } 
    printf("%c", pHead->data); 
     
    if (NULL != pHead->pRChild) 
    { 
      PreTravense(pHead->pRChild); 
    } 
  } 
} 

3.后續(xù)遍歷

//后序輸出 
void PostTravense(struct BTNode* pHead) { 
  if (NULL != pHead) 
  { 
    if (NULL != pHead->pLChild) 
    { 
      PreTravense(pHead->pLChild); 
    }    
 
    if (NULL != pHead->pRChild) 
    { 
      PreTravense(pHead->pRChild); 
    } 
    printf("%c", pHead->data); 
  } 
} 

第三、最終運行測試

int main() { 
  printf("創(chuàng)建序列\(zhòng)n"); 
  struct BTNode* pHead = create_list(); 
 
  printf("先序輸出\n"); 
  PreTravense(pHead); 
  printf("中序輸出\n"); 
  InTravense(pHead); 
  printf("后序輸出\n"); 
  PostTravense(pHead); 
  return 0; 
} 

以上這篇c語言_構建一個靜態(tài)二叉樹實現(xiàn)方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和

    C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和

    這篇文章主要為大家介紹了C++ LeetCode1780判斷數(shù)字是否可以表示成三的冪的和題解示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • linux之sort命令的用法

    linux之sort命令的用法

    sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出
    2013-10-10
  • 最新C/C++中的new和delete的實現(xiàn)過程小結

    最新C/C++中的new和delete的實現(xiàn)過程小結

    這篇文章主要介紹了C/C++中的new和delete的實現(xiàn)過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C++學習心得之掃雷游戲

    C++學習心得之掃雷游戲

    這篇文章主要為大家詳細介紹了C++學習心得之掃雷游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++中Boost的智能指針scoped_ptr

    C++中Boost的智能指針scoped_ptr

    這篇文章介紹了C++中Boost的智能指針scoped_ptr,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 一文讀懂c++之static關鍵字

    一文讀懂c++之static關鍵字

    這篇文章主要介紹了c++之static關鍵字的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • c語言實現(xiàn)奇偶排序算法

    c語言實現(xiàn)奇偶排序算法

    這篇文章主要介紹了c語言實現(xiàn)奇偶排序算法,有需要的朋友可以參考一下
    2013-12-12
  • 淺談Qt信號與槽的各種連接方式

    淺談Qt信號與槽的各種連接方式

    信號和槽是Qt特有的信息傳輸機制,本文主要介紹了淺談Qt信號與槽的各種連接方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C++使用循環(huán)計算標準差的代碼實現(xiàn)

    C++使用循環(huán)計算標準差的代碼實現(xiàn)

    在C++中,計算標準差可以使用循環(huán)來實現(xiàn),本文給大家介紹了一個示例代碼,演示了如何使用循環(huán)計算標準差,文中示例代碼介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • QT打包發(fā)布全流程(圖文教程)

    QT打包發(fā)布全流程(圖文教程)

    本文主要介紹了QT打包發(fā)布全流程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07

最新評論

武清区| 吉林市| 新化县| 辽阳县| 珠海市| 青阳县| 肇州县| 德格县| 丽水市| 高青县| 连云港市| 澄城县| 枞阳县| 商南县| 中超| 平和县| 莫力| 孟村| 清徐县| 双鸭山市| 松潘县| 长沙市| 兴宁市| 南和县| 九台市| 宁远县| 久治县| 巴楚县| 青铜峡市| 四会市| 嘉黎县| 东乡县| 阿克| 尼玛县| 姚安县| 尚义县| 台南县| 台北县| 尚志市| 天全县| 北安市|