求先序遍歷序列中第(1<=k<=二叉樹中結(jié)點個數(shù))個結(jié)點的值-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的做網(wǎng)站、成都做網(wǎng)站,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十載品質(zhì),值得信賴!

本題本質(zhì)上就是一個遍歷算法的實現(xiàn),只不過用一個全局變量的來記錄訪問的序號,求其他遍歷序列的第k個結(jié)點也采用相似的方法。二叉樹的遍歷算法可以引申出大量的算法題,因此考生務(wù)必熟練掌握二叉樹的遍歷算法。?

C語言代碼:

//本題本質(zhì)上就是一個遍歷算法的實現(xiàn),只不過用一個全局變量的
//來記錄訪問的序號,求其他遍歷序列的第k個結(jié)點也采用相似的
//方法。二叉樹的遍歷算法可以引申出大量的算法題,因此考生務(wù)必
//熟練掌握二叉樹的遍歷算法。

#includeusing namespace std;

typedef char ElemType;
typedef struct BiNode {
	ElemType data;
	BiNode* lchild;
	BiNode* rchild;
}BiNode, * BiTree;

//構(gòu)建二叉樹
BiNode* Create(BiNode* bt) {
	static int i = 0;
	char ch;
	//string str = "AB#D##C##";
	//string str = "124##56##7##3##";
	string str = "ABD#G##E##CF###";
	//string str = "ABD#GH##I##E##CF###";
	//string str = "#";
	ch = str[i++];
	if (ch == '#')bt = NULL;//建立一棵空樹 
	else {
		bt = (BiTree)malloc(sizeof(BiNode)); bt->data = ch;//生成一個結(jié)點,數(shù)據(jù)域為ch
		bt->lchild = Create(bt->lchild);//遞歸建立左子樹
		bt->rchild = Create(bt->rchild);//遞歸建立右子樹
	}
	return bt;
}

int i = 1;//遍歷序號的全局變量
ElemType PreNode(BiTree b,int k) {
	char ch;
	//本算法查找二叉樹先序遍歷中第k個結(jié)點的值
	if (b == NULL) {//空結(jié)點,則返回特殊字符
		return '#';
	}
	if (i == k) {
		return b->data;
	}
	i++;//下一個結(jié)點
	ch = PreNode(b->lchild, k);//左子樹中遞歸尋找
	if (ch != '#')//在左子樹中,則返回該值
		return ch;
	ch = PreNode(b->rchild, k);//在右子樹中遞歸尋找
	return ch;
}

void PreOrder(BiTree T) {
	if (T) {
		printf("%c ", T->data);
		PreOrder(T->lchild);
		PreOrder(T->rchild);
	}
}
int main() {
	BiTree T = (BiTree)malloc(sizeof(BiNode));
	T = Create(T);
	int num = 5;
	ElemType ch;
	ch = PreNode(T, num);
	if (ch != '#') {
		//遞歸先序遍歷
		printf("遞歸先序遍歷序列:");
		PreOrder(T);
		printf("\n先序遍歷序列中第%d個結(jié)點值為:%c ", num, ch);
	}
	else {
		printf("該二叉樹是一棵空樹");
	}
}

實驗結(jié)果圖:

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

標(biāo)題名稱:求先序遍歷序列中第(1<=k<=二叉樹中結(jié)點個數(shù))個結(jié)點的值-創(chuàng)新互聯(lián)
文章路徑:http://muchs.cn/article6/djjoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化建站公司、定制開發(fā)、用戶體驗自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作