国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145575
  • 編程
    +關注

    關注

    90

    文章

    3716

    瀏覽量

    97184
  • 二叉樹
    +關注

    關注

    0

    文章

    74

    瀏覽量

    12931

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言主要特點

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

    C語言C++的區別及聯系

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

    單片機C語言編程的心得

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

    如何調試和編程CW32F030C8T7?支持哪些調試工具和編程語言

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

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

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

    C語言編程技巧

    一個成員是一個未知大小的數組,適用于動態分配內存并關聯一個可變長度的數組。? ?3、匿名結構體和聯合體?:C語言允許在結構體或聯合體定義不帶標簽的內部結構體或聯合體,簡化代碼結構。 ?4
    發表于 11-27 06:46

    C語言的常見算法

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

    C語言在嵌入式開發的應用

    語言可以確保實時系統的任務能夠在規定的時間內完成,保證系統的穩定性和可靠性。 4、嵌入式網絡編程 隨著物聯網技術的飛速發展,嵌入式設備的聯網需求日益增長。C
    發表于 11-21 08:09

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

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

    通過優化代碼來提高MCU運行效率

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

    人工智能行業如何使用for循環語句進行循環

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

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

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

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

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

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

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

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

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