国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu):二叉樹:第3關(guān):基于二叉鏈表的二叉樹的遍歷

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu):二叉樹:第3關(guān):基于二叉鏈表的二叉樹的遍歷。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

任務描述

設二叉樹中每個結(jié)點的元素均為一個字符,按先序遍歷的順序建立二叉鏈表,編寫三個遞歸算法分別實現(xiàn)二叉樹的先序、中序和后序遍歷。

編程要求

輸入

多組數(shù)據(jù)。每組數(shù)據(jù)一行,為二叉樹的前序序列(序列中元素為‘0’時,表示該結(jié)點為空)。當輸入只有一個“0”時,輸入結(jié)束。

輸出

每組數(shù)據(jù)輸出三行,為二叉樹的先序、中序和后序序列。

測試說明

平臺會對你編寫的代碼進行測試:

測試輸入: abcd00e00f00ig00h00 abd00e00cf00g00 0

預期輸出: abcdefigh dcebfagih decfbghia abdecfg dbeafcg debfgca

來源

BJFUOJ


開始你的任務吧,祝你成功!

注:從微信或notepad++粘貼代碼,似乎可能含有不可見字符,會導致stray報錯

在C語言中,stray錯誤(stray error)是指在代碼中出現(xiàn)了一個無效或意外的字符。這通常是由于拼寫錯誤、格式錯誤、錯誤的符號或其他編碼錯誤引起的。當編譯器無法識別這些字符時,它會生成stray錯誤。

復制粘貼代碼可能導致stray錯誤。當從網(wǎng)頁或其他文本編輯器中復制代碼并粘貼到代碼編輯器中時,有時會出現(xiàn)格式問題,其中包括不可見的字符或額外的空格。這些不可見的字符或額外的空格可能會導致編譯器產(chǎn)生stray錯誤。文章來源地址http://www.zghlxwxcb.cn/news/detail-768070.html

#include<iostream>
#include<string.h>
using namespace std;
int flag;
typedef struct BiTNode
{
	char data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T,char S[],int &i)
{//先序建立二叉樹
	if(S[i]=='0')
		T=NULL;
	else
	{
		T=new BiTNode;
		T->data=S[i];
		CreateBiTree(T->lchild,S,++i);
		CreateBiTree(T->rchild,S,++i);
	}
}
void PreOrderTraverse(BiTree T)
{//二叉樹的先序遍歷
/**************begin************/
	
 if(T)
  {
	cout<<T->data;
    PreOrderTraverse(T->lchild);
    PreOrderTraverse(T->rchild);
  }

    /**************end************/
}
void InOrderTraverse(BiTree T)
{//二叉樹的中序遍歷
/**************begin************/

if(T)
{
 InOrderTraverse(T->lchild);
 cout<<T->data;
 InOrderTraverse(T->rchild);
}


    /**************end************/
}
void PostOrderTraverse(BiTree T)
{//二叉樹的后序遍歷
/**************begin************/


if(T)
  {
    PostOrderTraverse(T->lchild);
    PostOrderTraverse(T->rchild);
	cout<<T->data;
  }


    /**************end************/
}
int main()
{
	char S[100];
	while(cin>>S)
	{
		if(strcmp(S,"0")==0) break;
		int i=-1;
	  	BiTree T;
		CreateBiTree(T,S,++i);
		PreOrderTraverse(T);
		cout<<endl;
  	    InOrderTraverse(T);
		cout<<endl;
		PostOrderTraverse(T);
		cout<<endl;
	}
	return 0;
}

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu):二叉樹:第3關(guān):基于二叉鏈表的二叉樹的遍歷的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包