91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言編程中如何求出二叉樹后序遍歷

C語言編程基礎 ? 來源:CSDN博客 ? 作者:mcl19909949541 ? 2021-08-23 11:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

題目

已知二叉樹前序為 ABDFGCEH 后序序列為 BFDGACEH ,要求輸出后序遍歷為 FGDBHECA

大體思路

又先序得出根,先序的根后為左樹一部分,我們再在中序序列里找到先序的根,此處之前即為左樹(可以畫圖好好理解下),此處之后為右樹。然后就是不斷遞歸即可。

代碼

#include

#include

#include

#define MAX 100

typedef struct Node{

char data;

struct Node *Lchild;

struct Node *Rchild;

}BiTNode,*Bitree;

void PreTree(Bitree T) //后序輸出樹

{ if(T==NULL) return;

PreTree(T-》Lchild);

PreTree(T-》Rchild);

printf(“%c”,T-》data);

}

char pre[MAX];

char mid[MAX];

int MidFind(int left,int right,char MID)

{

for(int i=left;i

{

if(mid[i]==MID) return i;

}

return 0;

}

void Create(int left,int right,int *i,BiTNode **T) //此題建立樹得先將孩子結點賦NULL,因為沒有用戶輸入以確定什么時候把某個具體的結點賦為NULL

{//這是第一種創建二叉樹的寫法(二級指針法)

//這種感覺是把指針送進函數處理

*T=(Bitree)malloc(sizeof(BiTNode));

(*T)-》data=pre[*i];

(*T)-》Lchild=NULL;

(*T)-》Rchild=NULL;

(*i)++;

int midnumber = MidFind(left,right,(*T)-》data);

if(midnumber》left)

{

Create(left,midnumber-1,i,(&((*T)-》Lchild)));

}

if(midnumber

{

Create(midnumber+1,right,i,(&((*T)-》Rchild)));

}

}

BiTNode* Create2(int left,int right,int *i)

{//第二中創建方式(注意返回!?。。?/p>

//這種感覺是把指針讓函數處理(自己不進去)

BiTNode *T;

T=(Bitree)malloc(sizeof(BiTNode));

T-》data=pre[*i];

T-》Lchild=NULL;

T-》Rchild=NULL;

(*i)++;

int midnumber = MidFind(left,right,T-》data);

if(midnumber》left)

{

T-》Lchild = Create2(left,midnumber-1,i);

}

if(midnumber

{

T-》Rchild = Create2(midnumber+1,right,i);

}

return T;

}

int main()

{

memset(pre,0,MAX);

memset(mid,0,MAX);

gets(pre);

gets(mid);

int left,right,len,i=0;

len=strlen(pre);

left=0;

right=len-1;

BiTNode *T=(Bitree)malloc(sizeof(BiTNode)); //這里可以不用分配空間,因為在函數里會進行分配

Create(left,right,&i,&T);

PreTree(T);

return 0;

}

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141752
  • 編程
    +關注

    關注

    88

    文章

    3689

    瀏覽量

    95251
  • 二叉樹
    +關注

    關注

    0

    文章

    74

    瀏覽量

    12639

原文標題:C語言編程:已知二叉樹前序和中序,如何求出后序遍歷?

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    單片機c語言編程實例大全

    單片機c語言編程實例大全_18
    發表于 04-30 16:11 ?3次下載

    深入理解C語言C語言循環控制

    C語言編程,循環結構是至關重要的,它可以讓程序重復執行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環,
    的頭像 發表于 04-29 18:49 ?1148次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b>循環控制

    gitee 支持的編程語言有哪些

    Gitee 支持的常見編程語言: Python :一種廣泛使用的高級編程語言,以其清晰的語法和代碼可讀性而聞名。 Java :一種面向對象的編程
    的頭像 發表于 01-06 09:50 ?673次閱讀

    Triton編譯器支持的編程語言

    編寫和優化深度學習代碼。Python是一種廣泛使用的高級編程語言,具有簡潔易讀、易于上手、庫豐富等特點,非常適合用于深度學習應用的開發。 、領域特定語言(DSL) Triton也提供
    的頭像 發表于 12-24 17:33 ?966次閱讀

    編程語言的誤區與常見問題

    : 選擇編程語言時,應考慮項目需求、個人興趣以及語言的適用性。例如,如果你對Web開發感興趣,那么學習JavaScript可能是一個好選擇。 認識到沒有一種編程
    的頭像 發表于 11-15 09:35 ?750次閱讀

    NPU支持的編程語言有哪些

    與NPU一起使用: C/C++ : CC++是性能要求較高的應用的首選語言,尤其是在需要直接與硬件交互的場景
    的頭像 發表于 11-15 09:21 ?1929次閱讀

    C語言中的socket編程基礎

    Socket編程簡介 Socket是一種通信機制,允許程序之間進行通信。在C語言中,socket編程是網絡編程的基礎。通過使用socket,
    的頭像 發表于 11-01 16:51 ?1231次閱讀

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?2197次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對
    的頭像 發表于 10-29 17:31 ?1078次閱讀

    C語言與其他編程語言的比較

    C語言作為一種歷史悠久的編程語言,自其誕生以來,一直在軟件開發領域扮演著重要角色。它以其高效、靈活和可移植性強的特點,成為了系統級編程的首選
    的頭像 發表于 10-29 17:30 ?1081次閱讀

    Orin芯片的編程語言支持

    語言支持 Orin芯片支持多種編程語言,以滿足不同開發者的需求。其中,C/C++和Python是兩種廣泛應用的
    的頭像 發表于 10-27 16:45 ?989次閱讀

    plc編程語言編程相關技巧有哪些

    Function Chart, SFC)等。這些編程語言各有特點,適用于不同的應用場景。 梯形圖(LD) : 梯形圖是最常用的PLC編程語言,它類似于電氣控制線路
    的頭像 發表于 10-21 16:56 ?1117次閱讀

    什么是默克爾(Merkle Tree)?如何計算默克爾根?

    01 默克爾的概念 默克爾(Merkle Tree)是一種特殊的二叉樹,它的每個節點都存儲了一個數據塊的哈希值。哈希值是一種可以將任意長度的數據轉換為固定長度的字符串的算法,它具有唯一性和不可
    的頭像 發表于 09-30 18:22 ?2360次閱讀
    什么是默克爾<b class='flag-5'>樹</b>(Merkle Tree)?如何計算默克爾根?

    hex文件如何查看原c語言代碼

    是處理器可以直接執行的指令,而 C 語言代碼則是人類可讀的高級編程語言代碼。 然而,如果你想要從 .hex 文件獲取一些有用的信息或者對程
    的頭像 發表于 09-02 10:37 ?4943次閱讀

    plc編程st語言怎么編

    PLC(可編程邏輯控制器)編程的ST(Structured Text)語言是一種高級編程語言
    的頭像 發表于 08-25 10:05 ?2816次閱讀
    主站蜘蛛池模板: 午夜影院亚洲 | 国产精品理论 | 国产98在线传媒在线视频 | 亚洲福利午夜 | 久久天天躁综合夜夜黑人鲁色 | 色宅男午夜电影在线观看 | 日韩欧美亚洲综合久久影院d3 | 黄到让你下面湿的视频 | 人与禽交免费网站视频 | 国产精品美女在线 | 天堂在线中文无弹窗全文阅读 | 免费福利影院 | 成人午夜毛片 | h小视频在线| 色播五月激情五月 | 免费一级特黄特色大片在线观看看 | 国产亚洲欧洲人人网 | 99久久99久久久99精品齐 | 天天舔天天干 | 天堂最新版资源www在线 | 丁香婷婷在线 | 国产自在自线午夜精品视频在 | 天天狠天天干 | 操久在线 | 人人爱天天做夜夜爽 | 亚洲qingse中文在线 | 婷婷在线观看香蕉五月天 | 亚洲韩国在线一卡二卡 | 四虎影院黄色片 | 欧美zooz人禽交免费观看 | 久久久久久久久国产 | 女性一级全黄生活片免费看 | 五月情婷婷| a免费在线 | 久久久久久免费播放一级毛片 | 在线欧美成人 | 毛片毛片毛片毛片毛片毛片 | 天天干天天曰天天操 | 爱爱帝国亚洲一区二区三区 | 国产叼嘿免费视频网站 | 国产一区二区在线视频播放 |