C語(yǔ)言實(shí)現(xiàn)把二叉樹(shù)中所有結(jié)點(diǎn)的左、右子樹(shù)進(jìn)行交換的函數(shù)-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)公司擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10余年,專(zhuān)業(yè)且經(jīng)驗(yàn)豐富。10余年網(wǎng)站優(yōu)化營(yíng)銷(xiāo)經(jīng)驗(yàn),我們已為成百上千家中小企業(yè)提供了成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)解決方案,按需求定制網(wǎng)站,設(shè)計(jì)滿(mǎn)意,售后服務(wù)無(wú)憂(yōu)。所有客戶(hù)皆提供一年免費(fèi)網(wǎng)站維護(hù)!

完整代碼:

#include#include#includeusing namespace std;

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

//構(gòu)建二叉樹(shù)
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###";
	ch = str[i++];
	if (ch == '#')bt = NULL;//建立一棵空樹(shù) 
	else {
		bt = (BiTree)malloc(sizeof(BiNode)); bt->data = ch;//生成一個(gè)結(jié)點(diǎn),數(shù)據(jù)域?yàn)閏h
		bt->lchild = Create(bt->lchild);//遞歸建立左子樹(shù)
		bt->rchild = Create(bt->rchild);//遞歸建立右子樹(shù)
	}
	return bt;
}

//采用遞歸算法實(shí)現(xiàn)交換二叉樹(shù)的左右子樹(shù),首先交換b結(jié)點(diǎn)的左孩子的左右子樹(shù),
//然后交換b結(jié)點(diǎn)的右孩子的左右子樹(shù),最后交換b結(jié)點(diǎn)的左右孩子,當(dāng)
//結(jié)點(diǎn)為空時(shí)遞歸結(jié)束(后序遍歷的思想)。算法實(shí)現(xiàn)如下:
void swap(BiTree b) {
	//本算法遞歸地交換二叉樹(shù)的左右子樹(shù)
	BiTree temp;
	if (b) {
		swap(b->lchild);//遞歸地交換左子樹(shù)
		swap(b->rchild);//遞歸地交換右子樹(shù)
		temp = b->lchild;//交換左右孩子結(jié)點(diǎn)
		b->lchild = b->rchild;
		b->rchild = temp;
	}
}

void visit(char c) {
	printf("%c",c);
}

void InOrder(BiTree T) {
	if (T) {
		InOrder(T->lchild);
		visit(T->data);
		InOrder(T->rchild);
	}
}

int main() {
	BiTree T = (BiTree)malloc(sizeof(BiNode));
	T = Create(T);
	printf("交換前的中序遍歷\n");
	InOrder(T);
	swap(T);
	printf("\n交換后的中序遍歷\n");
	InOrder(T);
	printf("\n");
}

實(shí)驗(yàn)結(jié)果:

用中序遍歷驗(yàn)證二叉樹(shù)所有結(jié)點(diǎn)的左右子樹(shù)交換是否成功!

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

文章題目:C語(yǔ)言實(shí)現(xiàn)把二叉樹(shù)中所有結(jié)點(diǎn)的左、右子樹(shù)進(jìn)行交換的函數(shù)-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://muchs.cn/article4/djgcoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、軟件開(kāi)發(fā)網(wǎng)站導(dǎo)航、面包屑導(dǎo)航標(biāo)簽優(yōu)化、定制網(wǎng)站

廣告

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

成都網(wǎng)頁(yè)設(shè)計(jì)公司