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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

題目

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

大體思路

又先序得出根,先序的根后為左樹一部分,我們?cè)僭谥行蛐蛄欣镎业较刃虻母?,此處之前即為左樹(可以畫圖好好理解下),此處之后為右樹。然后就是不斷遞歸即可。

代碼

#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é)點(diǎn)賦NULL,因?yàn)闆]有用戶輸入以確定什么時(shí)候把某個(gè)具體的結(jié)點(diǎn)賦為NULL

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

//這種感覺是把指針?biāo)瓦M(jìn)函數(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ù)處理(自己不進(jìn)去)

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)); //這里可以不用分配空間,因?yàn)樵诤瘮?shù)里會(huì)進(jìn)行分配

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

PreTree(T);

return 0;

}

責(zé)任編輯:haq

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

    關(guān)注

    183

    文章

    7642

    瀏覽量

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

    關(guān)注

    90

    文章

    3710

    瀏覽量

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

    關(guān)注

    0

    文章

    74

    瀏覽量

    12892

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    C語言主要特點(diǎn)

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

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

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

    單片機(jī)C語言編程的心得

    寫這個(gè)8*8按鍵程序的過程,不管是在自己寫還是參考別人程序的過程,發(fā)現(xiàn)自己對(duì)C語言有些基本知識(shí)點(diǎn)和編程規(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

    為什么單片機(jī)還在用C語言編程?

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

    C語言編程技巧

    一個(gè)成員是一個(gè)未知大小的數(shù)組,適用于動(dòng)態(tài)分配內(nèi)存并關(guān)聯(lián)一個(gè)可變長度的數(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)用

    語言可以確保實(shí)時(shí)系統(tǒng)的任務(wù)能夠在規(guī)定的時(shí)間內(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語言和單片機(jī)C語言有什么差異

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

    通過優(yōu)化代碼來提高M(jìn)CU運(yùn)行效率

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

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

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

    單片機(jī)c語言編程實(shí)例大全

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

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

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

    如何在 樹莓派 上編寫和運(yùn)行 C 語言程序?

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

    數(shù)字電路編程語言介紹

    文本形式描述電路的行為和結(jié)構(gòu)。 并行性和并發(fā)性 :數(shù)字電路編程語言支持并行和并發(fā)操作的描述,這是數(shù)字電路設(shè)計(jì)的基本特性。 模塊化 :這些語言支持模塊化設(shè)計(jì),允許設(shè)計(jì)師將復(fù)雜的電路分解
    的頭像 發(fā)表于 01-24 09:39 ?1536次閱讀