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

C語言遞歸實(shí)現(xiàn)線索二叉樹

 更新時間:2017年10月21日 10:54:23   作者:數(shù)星星的咚咚咚  
這篇文章主要介紹了C語言遞歸實(shí)現(xiàn)線索二叉樹,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言遞歸實(shí)現(xiàn)線索二叉樹的具體代碼,供大家參考,具體內(nèi)容如下

描述:將二叉樹中結(jié)點(diǎn)的空左孩子指針域指向前驅(qū)結(jié)點(diǎn),將空的右孩子指針域指向后繼結(jié)點(diǎn)。

code:

#pragma warning(disable:4996)
#include<stdio.h>
#include<stdlib.h>
typedef struct TreeNode {
 char data;
 struct TreeNode *lchild, *rchild;
 int ltag, rtag;
}Tree,*BTree;
BTree Build_Tree(void) {
 BTree T;
 char ch;
 scanf("%c", &ch);
 if (ch == '#') {
 T = NULL;
 }
 else {
 T = (BTree)malloc(sizeof(Tree));
 T->data = ch;
 T->ltag = 0;
 T->rtag = 0;
 T->lchild = Build_Tree();
 T->rchild = Build_Tree();
 }
 return T;
}
//先序線索化
void Pre_Thread(BTree cur, BTree *pre) {
 if (cur && cur->ltag==0) {
 printf("%c ", cur->data);
 if (cur->lchild == NULL) {
  cur->lchild = *pre;
  (*pre)->ltag = 1;
  cur->ltag = 1;
 }
 if (cur->rchild == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 Pre_Thread(cur->lchild, pre);
 Pre_Thread(cur->rchild, pre);
 }
}
//中序線索化
void In_Thread(BTree cur, BTree *pre) {
 if (cur) {
 In_Thread(cur->lchild, pre);
 printf("%c ", cur->data);
 if (cur->lchild==NULL) {
  cur->lchild = *pre;
  cur->ltag = 1;
 }
 if (cur->rtag == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 In_Thread(cur->rchild, pre);
 }
}
//后序線索化
void Post_Thread(BTree cur, BTree *pre) {
 if (cur) {
 Post_Thread(cur->lchild, pre);
 Post_Thread(cur->rchild, pre);
 printf("%c ", cur->data);
 if (cur->lchild == NULL) {
  cur->lchild = *pre;
  cur->ltag = 1;
 }
 if (cur->rchild == NULL) {
  cur->rtag = 1;
 }
 if (*pre && (*pre)->rtag == 1) {
  (*pre)->rchild = cur;
 }
 *pre = cur;
 }
}
int main(void) {
 BTree T,p=NULL;
 T = Build_Tree();
 Pre_Thread(T, &p);
 //In_Thread(T, &p);
 //Post_Thread(T, &p);
 return 0;
}

跑時分別運(yùn)行前序、中序、后序線索化。

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

相關(guān)文章

  • 詳解C++中普通舊數(shù)據(jù)(POD)的使用

    詳解C++中普通舊數(shù)據(jù)(POD)的使用

    普通舊數(shù)據(jù)就是內(nèi)存中的連續(xù)字節(jié)序列,是能夠被“僅當(dāng)作數(shù)據(jù)”處理的對象。這篇文章主要帶大家了解一下C++中普通舊數(shù)據(jù)的定義與使用,感興趣的可以了解下
    2023-03-03
  • C++小游戲tankwar之界面繪制的詳細(xì)過程

    C++小游戲tankwar之界面繪制的詳細(xì)過程

    最近沒有項(xiàng)目做,空閑了下來,于是寫了個c++小游戲來打發(fā)時間,下面通過本文基于圖文并茂的形式給大家介紹C++小游戲tankwar之界面繪制的詳細(xì)過程,感興趣的朋友一起看看吧
    2021-05-05
  • 教你用C語言實(shí)現(xiàn)三子棋

    教你用C語言實(shí)現(xiàn)三子棋

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單三子棋程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • c++中的system(

    c++中的system("pause")的作用和含義解析

    這篇文章主要介紹了c++中system("pause")的作用和含義,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-03-03
  • QT實(shí)現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換

    QT實(shí)現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換

    本文主要介紹了QT實(shí)現(xiàn)二、八、十六進(jìn)制之間的轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++中的Qt?QTableView詳解

    C++中的Qt?QTableView詳解

    這篇文章主要介紹了Qt?QTableView詳解,主要包括常用接口,設(shè)置item屬性,右鍵彈出菜單,結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C語言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版可選擇游戲難度)

    C語言實(shí)現(xiàn)掃雷小游戲(擴(kuò)展版可選擇游戲難度)

    游戲目標(biāo)是找出所有沒有地雷的方格,完成游戲;要是按了有地雷的方格,游戲失敗;玩家可標(biāo)記雷的位置,游戲以完成時間來評高低,并且用戶可以選擇游戲難度
    2019-10-10
  • C++vector的insert函數(shù)用法小結(jié)

    C++vector的insert函數(shù)用法小結(jié)

    std::vector::insert是C++中用于在指定位置插入元素的函數(shù),支持插入單個元素、多個相同元素、一個范圍的元素或初始化列表中的元素,插入操作可能會使插入點(diǎn)之后的迭代器失效,并且時間復(fù)雜度為O(n),本文介紹C++vector的insert函數(shù)用法小結(jié),感興趣的朋友一起看看吧
    2025-03-03
  • VS2022新建項(xiàng)目時沒有ASP.NET Web應(yīng)用程序(.NET Framework)

    VS2022新建項(xiàng)目時沒有ASP.NET Web應(yīng)用程序(.NET Framework)

    本文主要介紹了VS2022新建項(xiàng)目時沒有ASP.NET Web應(yīng)用程序的解決,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 基于C語言實(shí)現(xiàn)靜態(tài)通訊錄的示例代碼

    基于C語言實(shí)現(xiàn)靜態(tài)通訊錄的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)一個簡單的靜態(tài)通訊錄,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-07-07

最新評論

阜城县| 东兴市| 内丘县| 荥阳市| 丰城市| 临泽县| 莎车县| 星子县| 理塘县| 教育| 东明县| 祁连县| 望江县| 漠河县| 遂昌县| 阳江市| 视频| 琼中| 镇坪县| 大同市| 锡林浩特市| 治多县| 安达市| 伊吾县| 平塘县| 佛坪县| 丰都县| 孝感市| 夏河县| 泽普县| 日土县| 溆浦县| 威宁| 云安县| 奎屯市| 鹤山市| 成武县| 鹤壁市| 仁寿县| 云南省| 普兰县|