青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

oyjpArt ACM/ICPC算法程序設計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

遍歷二叉樹的非遞歸算法

Posted on 2006-08-05 18:08 oyjpart 閱讀(763) 評論(0)  編輯 收藏 引用

遍歷二叉樹的非遞歸算法

編寫的方法:根據樹中結點的遍歷規律及順序直接寫出其非遞歸算法。
先序非遞歸算法
【思路】
假設:T是要遍歷樹的根指針,若T?!=?NULL
對于非遞歸算法,引入棧模擬遞歸工作棧,初始時棧為空。
問題:如何用棧來保存信息,使得在先序遍歷過左子樹后,能利用棧頂信息獲取T的右子樹的根指針?
方法1:訪問T->data后,將T入棧,遍歷左子樹;遍歷完左子樹返回時,棧頂元素應為T,出棧,再先序遍歷T的右子樹。
方法2:訪問T->data后,將T->rchild入棧,遍歷左子樹;遍歷完左子樹返回時,棧頂元素應為T->rchild,出棧,遍歷以該指針為根的子樹。
【算法1】
void????PreOrder(BiTree?T,?Status?(?*Visit?)?(ElemType?e))

{????//?基于方法一,流程圖如右,當型循環

InitStack(S);
while ?(?T != NULL? || ? ! StackEmpty(S)) {
while ?(?T? != ?NULL?) {
Visit(T
-> data)?;
Push(S,T);
T?
= ?T -> lchild;
}

if (? ! StackEmpty(S)?) {
Pop(S,T);
T?
= ?T -> rchild;
}

}

}

【算法2】
void????PreOrder(BiTree?T,?Status?(?*Visit?)?(ElemType?e))

{????//?基于方法二,流程圖如右,當型循環
InitStack(S);
while?(?T!=NULL?||?!StackEmpty(S)?){
while?(?T?!=?NULL?){
Visit(T->data);
Push(S,?T->rchild);
T?=?T->lchild;
}
if?(?!StackEmpty(S)?){
Pop(S,T);
}
}
}
進一步考慮:對于處理流程中的循環體的直到型、當型+直到型的實現。
中序非遞歸算法
【思路】
T是要遍歷樹的根指針,中序遍歷要求在遍歷完左子樹后,訪問根,再遍歷右子樹。
問題:如何用棧來保存信息,使得在中序遍歷過左子樹后,能利用棧頂信息獲取T指針?
方法:先將T入棧,遍歷左子樹;遍歷完左子樹返回時,棧頂元素應為T,出棧,訪問T->data,再中序遍歷T的右子樹。

【算法】
void????InOrder(BiTree?T,?Status?(?*Visit?)?(ElemType?e))
{????//?流程圖如右,當型循環
InitStack(S);
while?(?T!=NULL?||?!StackEmpty(S)?){
while?(?T?!=?NULL?){
Push(S,T);
T?=?T->lchild;
}
if(?!StackEmpty(S)?){
Pop(S,?T);
Visit(T->data);
T?=?T->rchild;
}
}
}
進一步考慮:對于處理流程中的循環體的直到型、當型+直到型的實現。
后序非遞歸算法
【思路】

T是要遍歷樹的根指針,后序遍歷要求在遍歷完左右子樹后,再訪問根。需要判斷根結點的左右子樹是否均遍歷過。
可采用標記法,結點入棧時,配一個標志tag一同入棧(0:遍歷左子樹前的現場保護,1:遍歷右子樹前的現場保護)。
首先將T和tag(為0)入棧,遍歷左子樹;返回后,修改棧頂tag為1,遍歷右子樹;最后訪問根結點。
typedef?struct?stackElement{
Bitree????data;
char????????tag;
}stackElemType;
【算法】
void????PostOrder(BiTree?T,?Status?(?*Visit?)?(ElemType?e))
{????//?流程圖如右,當型循環
InitStack(S);
while?(?T!=NULL?||?!StackEmpty(S)?){
while?(?T?!=?NULL?){
Push(S,T,0);
T?=?T->lchild;
}
while?(?!StackEmpty(S)?&&?GetTopTag(S)==1){
Pop(S,?T);
Visit(T->data);
}
if?(?!StackEmpty(S)?){
SetTopTag(S,?1);????????//?設置棧頂標記
T?=?GetTopPointer(S);????//?取棧頂保存的指針
T?=?T->rchild;
}else?break;
}
}


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩一级裸体免费视频| 亚洲国产成人91精品| 夜夜嗨av一区二区三区免费区| 韩国久久久久| 欧美一级成年大片在线观看| 久久久久一本一区二区青青蜜月| 欧美激情一区二区三区蜜桃视频| 亚洲色图自拍| 国产精品久久久久毛片软件 | 午夜在线电影亚洲一区| 一区二区三区四区精品| 亚洲精品中文字幕女同| 亚洲直播在线一区| 久久亚洲午夜电影| 欧美一区二粉嫩精品国产一线天| 久久在线视频| 久久这里有精品视频| 欧美日韩一区视频| 91久久久久久| 亚洲毛片在线观看.| 国产亚洲成av人在线观看导航| 欧美一级夜夜爽| 亚洲一区二区免费视频| 久久视频在线视频| 中文在线资源观看网站视频免费不卡| 久久久久综合网| 日韩图片一区| 欧美亚洲尤物久久| 国产精品日本精品| 欧美激情第一页xxx| 亚洲一区影音先锋| 亚洲黄色天堂| 午夜日韩视频| 一本色道久久综合亚洲精品小说| 一区二区三区欧美激情| 激情综合视频| 国产精品99久久久久久久久 | 欧美成人在线免费视频| 一本久道久久综合婷婷鲸鱼| 亚洲精品黄色| 国产欧美丝祙| 男女精品网站| 久久婷婷麻豆| 亚洲一二三区精品| 久久福利电影| 美女主播精品视频一二三四| 亚洲高清自拍| 国产精品揄拍500视频| 亚洲欧美成人综合| 久久国产色av| 国产视频在线观看一区| 亚洲精品影视在线观看| 亚洲视频中文| 欧美精品激情blacked18| 欧美~级网站不卡| 亚洲第一二三四五区| 亚洲日本欧美在线| 久久久www| 中文高清一区| 亚洲一区二区黄| 一区二区三区www| 国产欧美精品| 99视频精品在线| 国产精品v日韩精品| 99在线精品视频| 亚洲高清视频一区| 狠狠色狠狠色综合人人| 一区二区三区色| 亚洲人成网站在线观看播放| 欧美福利电影网| 亚洲精品极品| 亚洲激情小视频| 欧美精彩视频一区二区三区| 99视频精品全部免费在线| 亚洲人被黑人高潮完整版| 欧美日韩国产成人| 亚洲视频中文字幕| 亚洲一区二区三区乱码aⅴ| 国产精品美女久久久久久久| 午夜激情综合网| 亚洲制服av| 1769国内精品视频在线播放| 美日韩精品免费| 欧美韩日高清| 裸体一区二区三区| 一区二区三区精品久久久| 夜夜爽99久久国产综合精品女不卡| 欧美日韩亚洲高清一区二区| 亚洲一二三四区| 女女同性女同一区二区三区91| 久久久久成人精品免费播放动漫| 亚洲欧美日韩精品一区二区| 久久精品国产亚洲5555| 亚洲狼人精品一区二区三区| 亚洲另类一区二区| 欧美激情一区二区三区不卡| 欧美一区二区三区在线播放| 久久综合五月| 欧美一区二区在线免费播放| 久久这里有精品15一区二区三区 | 一区二区亚洲欧洲国产日韩| 亚洲高清三级视频| 欧美日韩午夜精品| 美女在线一区二区| 国产免费成人av| 亚洲另类一区二区| 亚洲免费观看高清在线观看| 国内精品久久久久国产盗摄免费观看完整版| 牛牛国产精品| 国产人久久人人人人爽| 亚洲电影下载| 黄色成人在线网址| 这里是久久伊人| 亚洲一区国产一区| 久久婷婷综合激情| 欧美在线啊v一区| 欧美人与禽性xxxxx杂性| 久久综合狠狠综合久久综青草| 亚洲少妇自拍| 欧美mv日韩mv国产网站| 国产精品亚洲欧美| 最新中文字幕亚洲| 亚洲国产99精品国自产| 久久久久国产一区二区三区四区| 欧美一区日本一区韩国一区| 99国产一区| 精品电影一区| 亚洲欧美国产三级| 亚洲一区影音先锋| 欧美日韩免费观看一区三区| 亚洲国产另类精品专区 | 欧美一区=区| 午夜亚洲福利| 国产精品免费区二区三区观看| 亚洲日韩视频| 日韩一区二区电影网| 亚洲午夜免费福利视频| 欧美韩国一区| 亚洲精品久久久久久下一站 | 亚洲一区中文字幕在线观看| 亚洲一级一区| 国产精品家教| 亚洲在线一区二区| 欧美影片第一页| 红桃视频欧美| 欧美精品www| 欧美在线免费观看视频| 国产精品高潮呻吟久久| 亚洲男人的天堂在线| 国产精品国产三级国产a| 亚洲永久字幕| 老司机凹凸av亚洲导航| 亚洲黄色高清| 欧美三级电影大全| 亚洲免费视频成人| 久久婷婷av| 亚洲精品一区二区三区婷婷月| 国产精品区一区| 久久九九久久九九| 亚洲国产精品一区二区第四页av| 99riav国产精品| 国产精品乱码一区二三区小蝌蚪| 午夜精品久久久久久久| 久久伊人一区二区| 日韩一二三区视频| 国产精品乱人伦一区二区| 欧美一区观看| 亚洲破处大片| 久久精品国产999大香线蕉| 在线电影欧美日韩一区二区私密| 欧美欧美在线| 欧美在线短视频| 亚洲精品一区二区三区蜜桃久| 欧美在线免费播放| 美日韩精品视频免费看| 一区二区三区欧美在线| 卡通动漫国产精品| 亚洲午夜一区二区| 激情小说另类小说亚洲欧美 | 亚洲男人第一网站| 亚洲一区二区三| 在线观看一区二区视频| 欧美日韩日韩| 久久精品综合网| 久久午夜激情| 国产精品成av人在线视午夜片| 亚洲第一精品福利| 国产真实乱偷精品视频免| 久久精品国产在热久久| 欧美成人综合网站| 亚洲国产精品专区久久| 久久成人国产精品| 欧美一区二区三区啪啪| 国产亚洲第一区| 久久久久久婷| 亚洲欧美日韩精品久久亚洲区| 国语自产精品视频在线看抢先版结局| 国产女人精品视频| 国产精品福利在线| 国产午夜精品全部视频在线播放|