chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

C語言編程基礎(chǔ) ? 來源: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) //此題建立樹得先將孩子結(jié)點賦NULL,因為沒有用戶輸入以確定什么時候把某個具體的結(jié)點賦為NULL

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

//這種感覺是把指針?biāo)瓦M函數(shù)處理

*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)

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

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

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)); //這里可以不用分配空間,因為在函數(shù)里會進行分配

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

PreTree(T);

return 0;

}

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    183

    文章

    7644

    瀏覽量

    145603
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97191
  • 二叉樹
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    12935

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

文章出處:【微信號:xx-cyy,微信公眾號:C語言編程基礎(chǔ)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C語言主要特點

    指針類型數(shù)據(jù),使用十分靈活和多樣化,能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、、棧等)的運算。 4.具有結(jié)構(gòu)化的控制語句。用函數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化。C語言是完全模塊化和結(jié)構(gòu)化的
    發(fā)表于 01-05 07:41

    C語言C++的區(qū)別及聯(lián)系

    缺點:性能比面向過程低。 、具體語言上的區(qū)別 1、關(guān)鍵字的不同 C語言有32個關(guān)鍵字;C++有63個關(guān)鍵字。 2、后綴名不同
    發(fā)表于 12-24 07:23

    單片機C語言編程的心得

    寫這個8*8按鍵程序的過程,不管是在自己寫還是參考別人程序的過程,發(fā)現(xiàn)自己對C語言有些基本知識點和編程規(guī)范有很多不懂的地方,有些是自己以
    發(fā)表于 12-08 07:44

    如何調(diào)試和編程CW32F030C8T7?支持哪些調(diào)試工具和編程語言

    了解如何調(diào)試和編程CW32F030C8T7是開發(fā)過程的重要環(huán)節(jié)。它支持哪些調(diào)試工具(如JTAG、串口調(diào)試等)和編程語言(如
    發(fā)表于 12-05 06:48

    為什么單片機還在用C語言編程?

    說起單片機我們就會想到C語言,單片機為什么還在用C語言編程?現(xiàn)在有很多很好用的高級語言,如VC、
    發(fā)表于 11-28 07:37

    C語言編程技巧

    一個成員是一個未知大小的數(shù)組,適用于動態(tài)分配內(nèi)存并關(guān)聯(lián)一個可變長度的數(shù)組。? ?3、匿名結(jié)構(gòu)體和聯(lián)合體?:C語言允許在結(jié)構(gòu)體或聯(lián)合體定義不帶標(biāo)簽的內(nèi)部結(jié)構(gòu)體或聯(lián)合體,簡化代碼結(jié)構(gòu)。 ?4
    發(fā)表于 11-27 06:46

    C語言的常見算法

    = next; } return prev; } ``` ### 二叉樹遍歷 (前序) ```c struct TreeNode { int val; struct TreeNode
    發(fā)表于 11-24 08:29

    C語言在嵌入式開發(fā)的應(yīng)用

    語言可以確保實時系統(tǒng)的任務(wù)能夠在規(guī)定的時間內(nèi)完成,保證系統(tǒng)的穩(wěn)定性和可靠性。 4、嵌入式網(wǎng)絡(luò)編程 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,嵌入式設(shè)備的聯(lián)網(wǎng)需求日益增長。C
    發(fā)表于 11-21 08:09

    C語言和單片機C語言有什么差異

    單片機c語言相對于普通C語言增加了一些基本的指令,還有變量的賦值是16進制,當(dāng)然單片機c語言只牽
    發(fā)表于 11-14 07:55

    通過優(yōu)化代碼來提高MCU運行效率

    選擇時間復(fù)雜度低的算法。 根據(jù)訪問模式選擇數(shù)據(jù)結(jié)構(gòu)。頻繁查找用哈希表,有序數(shù)據(jù)用二叉樹等。 查表法:對于復(fù)雜的數(shù)學(xué)計算(如sin, log),或者協(xié)議解析,預(yù)先計算好結(jié)果存于數(shù)組,用空間換時間
    發(fā)表于 11-12 08:21

    人工智能行業(yè)如何使用for循環(huán)語句進行循環(huán)

    人工智能行業(yè)可以使用以下是關(guān)于for循環(huán)在不同編程語言中的基本用法說明: Python的for循環(huán): 主要用于遍歷序列(列表、元組、字符串等) 典型結(jié)構(gòu):for item in se
    的頭像 發(fā)表于 09-10 12:55 ?569次閱讀

    深入理解C語言:函數(shù)—編程的“積木塊”藝術(shù)

    編程的世界里,函數(shù)就像建筑的“積木塊”——它們是構(gòu)建復(fù)雜程序的基石。通過靈活組合這些模塊,開發(fā)者能打造出功能強大且結(jié)構(gòu)清晰的代碼。函數(shù)之所以成為C語言的核心,正是因為它解決了
    的頭像 發(fā)表于 06-30 17:26 ?1877次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:函數(shù)—<b class='flag-5'>編程</b><b class='flag-5'>中</b>的“積木塊”藝術(shù)

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

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

    深入理解C語言C語言循環(huán)控制

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

    如何在 樹莓派 上編寫和運行 C 語言程序?

    在本教程,我將討論C編程語言是什么,C編程的用途,以及如何在RaspberryPi上編寫和運行
    的頭像 發(fā)表于 03-25 09:28 ?1156次閱讀
    如何在 樹莓派 上編寫和運行 <b class='flag-5'>C</b> <b class='flag-5'>語言</b>程序?