c語言以順序結構存儲的二叉樹的非遞歸遍歷,C語言二叉樹的非遞歸遍歷實例分析...

本文以實例形式講述了C語言實現二叉樹的非遞歸遍歷方法。是數據結構與算法設計中常用的技巧。分享給大家供大家參考。具體方法如下:

先序遍歷:

void preOrder(Node *p) //非遞歸

{

if(!p) return;

stack s;

Node *t;

s.push(p);

while(!s.empty())

{

t=s.top();

printf("%d\n",t->data);

s.pop();

if(t->right) s.push(t->right);

if(t->left) s.push(t->left);

}

}

中序遍歷:

void inOrder(Node *p)

{

if(!p)

return;

stack< pair > s;

Node *t;

int unUsed;

s.push(make_pair(p,1));

while(!s.empty())

{

t=s.top().first;

unUsed = s.top().second;

s.pop();

if(unUsed)

{

if(t->right)

s.push( make_pair(t->right,1) );

s.push( make_pair(t,0) );

if(t->left)

s.push( make_pair(t->left,1));

}

else printf("%d\n",t->data);

}

}

后序遍歷:

void postOrder(Node *p)

{

if(!p) return;

stack > s;

Node *t;

int unUsed;

s.push(make_pair(p,1));

while(!s.empty())

{

t=s.top().first;

unUsed=s.top().second;

s.pop();

if(unUsed)

{

s.push(make_pair(t,0);

if(t->right)

s.push(make_pair(t->right,1));

if(t->left)

s.push(make_pair(t->left,1));

}

else printf("%d\n",t->data);

}

}

希望本文所述對大家C程序算法設計的學習有所幫助。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443168.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443168.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443168.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言標識符的文法表示,第三章文法和語法[lly]3.ppt

第三章文法和語法[lly]3第3章文法和語言;1、語言;研究程序設計語言及研究的三個方面&#xff1a; 每個程序構成的規律(語法 Syntax)每個程序的含義(語義 Semantics)每個程序和使用者的關系(語用 Pragmatics)語言三個方面定義&#xff1a;語法 -- 表示構成語言句子的各個記號之間…

c語言編程函數補充上機題,2011年計算機二級C語言上機操作題及答案(10)

/********found********/void fun(char *s, *t1, *t2, *w){int i;char *p, *r, *a;strcpy(w, s);while (*w){p w;r t1;/********found********/while (r)if (*r *p){r;p;}else{break;}if (*r ’\0’){a w;r t2;while (*r){*a *r;a;r;}w strlen(t2);}else{w;}}}main(…

蘇州大學實驗報告模板C語言,蘇州大學實驗報告-實驗flash在線編程實驗

1、實驗Flash在線編程實驗一實驗目的1進一步熟悉MT-IDE嵌入式開發系統環境、匯編、C語言、調試方式。2進一步學習SCI通信的內容。3掌握Flash存儲器在線編程的基本概念。4熟悉GP32芯片Flash存儲器的在線編程擦除和寫入的步驟。5理解課本中的程序代碼。二預習要求1仔細閱讀本實驗…

c55x匯編語言,TMS320C55x匯編語言編程A.ppt

TMS320C55x匯編語言編程A例4-17,無效定義的表達式。 .global Y ; 定義Y為全局外部符號 badsym1.set Y ; Y在當前文件中未定義 badsym2.set 50h Y ; 無效的表達式 badsym3.set 50h Z ; 無效的表達式&#xff0c;Z還未定義 Z .set 60h; 定義Z&#xff0c;但應在表達式使用之前 …

c語言課程筆記格式,C語言課程學習筆記.docx

C語言課程學習筆記C語言基礎語言排行榜C——java——objective-C進制&#xff1a;進制&#xff1a;進位機制。用普通的話講&#xff0c;應該為人為的定義一種度量來標識一樣東西。計算機常用的進制有&#xff1a;十進制、二進制、八進制和十六進制。十進制&#xff1a;0-9(十個…

c語言 手機圖形庫,c語言的圖形庫 - osc_opiar5rp的個人空間 - OSCHINA - 中文開源技術交流社區...

圖形庫鏈接http://www.easyx.cn/ 使用圖形庫頭文件easyx.h或graphics.h同樣在里面下載圖形庫幫助文檔進行查詢vs vc都可使用圖形庫圖形庫窗口&#xff1a;initgraph打開窗口closegraph關閉窗口顏色RGB值 RGB(,,)&#xff1a;red green blue 下表值都可以在函數中直接使用填充顏…

android 自動掛斷,[轉]android?來電自動接聽和自動掛斷

注意&#xff1a;android2.3版本不支持下面的自動接聽方法。(會拋異常&#xff1a;java.lang.SecurityException:Neither user xxxxx nor current process hasandroid.permission.MODIFY_PHONE_STATE.)第一步&#xff1a;準備應用環境需要的系統包和aidl文件。(1)在應用中創建包…

Android實現mp3分析,Android編程實現播放MP3功能示例

本文實例講述了Android編程實現播放MP3功能。分享給大家供大家參考&#xff0c;具體如下&#xff1a;在android中播放mp3非常簡單&#xff0c;也是項目中經常使用的&#xff0c;比如說要做項目的背景音樂&#xff0c;應用中某些功能的提示音等的。應用非常廣泛,下面提供一個簡單…

android 投票功能,騰訊新聞Android客戶端更新 加入投票功能

騰訊近日更新了其應用《騰訊新聞》安卓版&#xff0c;加入了新聞專題&#xff0c;投票兩大新功能&#xff0c;同事還優化了用戶界面&#xff0c;大家在瀏覽各類新聞方面又有了新的選擇。新版特點&#xff1a;1、新聞專題&#xff1a;熱門新聞專題呈現&#xff0c;聚合瀏覽&…

android8.1自定義通知欄,Android 8.1隱藏狀態欄圖標的實例代碼

近期客戶需求&#xff0c;狀態欄只顯示時間和電池圖標&#xff0c;如圖狀態欄圖標的布局文件在frameworks\base\packages\SystemUI\res\layout\status_bar.xml,主要包括通知&#xff0c;定位&#xff0c;藍牙&#xff0c;信號&#xff0c;時間&#xff0c;電池等圖標&#xff0…

廣州城市地圖為android,廣州無障礙地圖

廣州無障礙地圖是一款非常不錯的手機導航app&#xff0c;專門為老人與殘障人士打造的哦。該app將準確的為殘障用戶規劃出一條沒有任何障礙的出行路線&#xff0c;并且該軟件擁有語音、文字等不同的播報方式。特色說明1、智能化的手機導航的系統&#xff0c;語音識別2、最為準確…

如何將系統退回上個版本Android,vivo NEX A降級教程,如何回退到舊版本系統的方法...

也來分享一下這個vivo NEX A手機的相關降級操作了&#xff0c;因為看到有的小伙伴對對于新升級的系統不是特別的滿意&#xff0c;這個時候就會考慮進行系統的降級回退操作 &#xff0c;一般直接刷官方的全量包是降不了&#xff0c;需要一個安卓10.0的中轉降級包才行的&#xff…

支持3d android 模擬器,真正免root的3D神器詳細使用教程

3D神器的功能眾所周知&#xff0c;Android手機的GPU(圖像顯示芯片)是內置在CPU中的&#xff0c;而由于各個手機所采用的CPU不同&#xff0c;其GPU也不一樣&#xff0c;不同的GPU&#xff0c;其內置的渲染模式也不一樣。這就導致了不同手機的CPU平臺需要使用對應的游戲數據包才能…

jays+android耳機,android – 響應多按鈕有線耳機

我正在駕駛一對JAYS四耳機(有線遙控器/麥克風上有3個按鈕)插入Galaxy Nexus(ICS 4.0.2)進行實驗.我的問題是,只有中間的按鈕被我寫的測試應用程序’識別’,即按鍵時觸發了Intent.ACTION_MEDIA_BUTTON和/或Activity.onKeyDown回調與KeyCode 79.按另外兩個按鈕不會觸發任何以前的…

華為副總鴻蒙,“哄蒙”敗北!華為副總裁落實最新消息,鴻蒙3月31日正式亮劍...

原標題&#xff1a;“哄蒙”敗北&#xff01;華為副總裁落實最新消息&#xff0c;鴻蒙3月31日正式亮劍不得不說&#xff0c;最近的華為生態建設又取得了重大的突破。在2020年不到一年的時間里&#xff0c;華為HMS生態注冊開發者的數量就已經快要突破200萬了&#xff0c;如此龐大…

android sonar 簡書,SonarQube對ios、android代碼檢測

一、sonar安裝利用sonar檢測代碼需要安裝下面幾個軟件SonarQube、Sonar-Scanner、OClint、sonar plugin for objective-c、sonar-I10n-zh(安裝步驟參考http://www.cnblogs.com/ishawn/p/3959521.html )二、ios檢測腳本cp -rf /Users/conf/ios/sonar-project.properties ${WORKS…

android afw模式,[HUAWEI-TITANC328]手機加密功能開啟后,工作區中添加超級備份手機不斷重啟的分析報告...

工作區中添加超級備份手機不斷重啟的分析報告【華為反饋】 【TIT-AL00C328B120_AFW_必現】創建工作空間后升級系統,升級失敗&#xff0c;手機循環重啟。通過分析log發現&#xff0c;實際上這個問題與OTA無關&#xff0c;而與工作區應用發出的notification有關。經過溝通和自測&…

html淡化效果,jQuery實現基本淡入淡出效果的方法詳解

本文實例講述了jQuery實現基本淡入淡出效果的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;jQuery fadeIn()方法&#xff1a;用于淡入已隱藏的元素jQuery fadeOut()方法&#xff1a;用于淡出可見的元素$(document).ready(function(){$("button").clic…

Html跨頁面調用函數,一個cshtml如何在另一個cshtml中調用一個函數?

在webmatrix中&#xff0c;我在App_Data中創建了一個帶有許多公共靜態函數的DAL.cshtml。我想從其他文件夾中的另一個.cshtml頁面調用它們。我現在得到了編譯器錯誤消息&#xff1a;CS0103&#xff1a;名稱DAL在當前上下文中不存在(請注意&#xff0c;我是一名初學者&#xff0…

html 類型轉換,JavaScript怎么進行類型轉換?

JavaScript怎么進行類型轉換&#xff1f;下面本篇文章就來介紹一下使用javascript進行類型轉換的方法&#xff0c;希望對大家有所幫助。JavaScript 變量可以轉換為新變量或其他數據類型&#xff0c;分為兩種情況&#xff1a;● 隱性轉換&#xff1a;通過 JavaScript 自身自動轉…