在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美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)

{//第二中創建方式(注意返回!!!)

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

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

    文章

    7605

    瀏覽量

    136963
  • 編程
    +關注

    關注

    88

    文章

    3617

    瀏覽量

    93768
  • 二叉樹
    +關注

    關注

    0

    文章

    74

    瀏覽量

    12335

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

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

收藏 人收藏

    評論

    相關推薦

    Triton編譯器支持的編程語言

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

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

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

    NPU支持的編程語言有哪些

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

    C語言中的socket編程基礎

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

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

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

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

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

    Orin芯片的編程語言支持

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

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

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

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

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

    plc編程st語言怎么編

    PLC(可編程邏輯控制器)編程的ST(Structured Text)語言是一種高級編程語言
    的頭像 發表于 08-25 10:05 ?1255次閱讀

    PLC編程語言C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。
    的頭像 發表于 06-14 17:11 ?2869次閱讀

    嵌入式系統C語言結構體的基礎實現與應用

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構是C語言編程中允許您存儲不同數據類型的數據。
    發表于 03-12 14:29 ?506次閱讀
    嵌入式系統<b class='flag-5'>中</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>結構體的基礎實現與應用

    plc編程語言c語言的聯系 c語言和PLC有什么區別

    PLC編程語言C語言的聯系 PLC(可編程邏輯控制器)是一種針對自動化控制系統的特殊計算機。PLC編程
    的頭像 發表于 02-05 14:21 ?4171次閱讀

    c語言,c++,java,python區別

    C語言C++、Java和Python是四種常見的編程語言,各有優點和特點。 C
    的頭像 發表于 02-05 14:11 ?2427次閱讀

    vb語言c++語言的區別

    VB語言C++語言是兩種不同的編程語言,雖然它們都屬于高級編程
    的頭像 發表于 02-01 10:20 ?2361次閱讀
    主站蜘蛛池模板: 午夜一级毛片免费视频| 人日人操| 丁香六月婷婷在线| 97视频免费上传播放| avtt天堂网永久资源| 成人精品一区二区不卡视频| freesexvideo性欧美医生护士| 99色视频在线观看| 天天摸天天做天天爽天天弄| 人人人插| 97天天操| 午夜性视频| 直接在线观看的三级网址| 曰韩毛片| 日韩综合图区| 萌白酱白丝护士服喷水铁牛tv| 久久精品国产2020观看福利色| 高清不卡日本v在线二区| 丁香天堂网| 欧美xxxx极品流血| 性感美女逼| 性欧美xxxx视频| 日本不卡在线视频高清免费| xxxx性xx另类| 色香视频首页| 黄色视屏在线免费播放| 在线免费看一级片| 久久啊| 4438x成人网最大色成网站| 国产毛片久久国产| 色牛网| 色视频在线观看网站| 欧美激情亚洲色图| 成人免费无毒在线观看网站 | 羞羞视频靠逼视频大全| 亚洲欧美色图| 欧美伦理一区二区三区| 99综合色| 成年全黄大色大黄| 中文字幕在线看精品乱码| 日本吻胸抓胸激烈视频网站|