91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

創建、前序、中序、后序遞歸遍歷二叉樹

發布時間:2020-07-13 11:23:05 來源:網絡 閱讀:333 作者:哆悇溫渘 欄目:開發技術

代碼簡介

創建、前序、中序、后序遞歸遍歷二叉樹
VS2010編譯通過

代碼片段

/*
	關于非線性的數據結構當然樹形結構最重要,而樹里面又屬二叉樹最重要,
	所以在后面將列出二叉樹的各種使用方法,包括基本的遍歷,和我在一些
	資料上看到的關于二叉樹的面試題型。至于一些很高級的樹形結構,如平
	衡樹,還有線索樹等,就暫時不寫出來,先完成最基本的,再一點點的加
*/

#include <stdio.h>
#include <stdlib.h>
//typedef void * ElemType;
typedef int ElemType;

struct BinaryTreeNode
{
	ElemType m_nValue;
	BinaryTreeNode *m_pLeft;
	BinaryTreeNode *m_pRight;
};

/*
	二叉樹主要的難點是遍歷
	基本上所有的算法都是基于二叉樹的遍歷的
	至于創建二叉樹就需要在輸入的時候把線性的結構轉換成非線性的
	用輸入的方式創建二叉樹,
*/

				//將輸入獨立起來,
BinaryTreeNode * CreateTree(BinaryTreeNode *bTree)
{
	int input;
	scanf("%d",&input);			//按先序建立二叉樹
	if(input == 0)
	{
		bTree = NULL;	//置為NULL后結束
		return bTree;	
	}
	bTree = (BinaryTreeNode *)malloc(sizeof(BinaryTreeNode));
	bTree ->m_nValue = input;
	bTree->m_pLeft = CreateTree(bTree->m_pLeft);
	bTree->m_pRight = CreateTree(bTree->m_pRight);
	return bTree;
}

//三種遞歸遍歷方法

void Preorder(BinaryTreeNode *bTree)		//這個是先序遍歷,先根,左子樹,右子樹
{
	if(bTree != NULL)
	{
		printf("%d ",bTree->m_nValue);
		Preorder(bTree->m_pLeft);
		Preorder(bTree->m_pRight);
	}
}

void Inorder(BinaryTreeNode *bTree)		//中序遍歷,左子樹,根,右子樹
{
	if(bTree != NULL)
	{
		Inorder(bTree->m_pLeft);
		printf("%d ",bTree ->m_nValue);
		Inorder(bTree ->m_pRight);
	}hxyy2013.b2b168.com
http://www.wenbing.com/kmhx
}

void Postorder(BinaryTreeNode *bTree)		//后序遍歷,左子樹,右子樹,根
{

	if(bTree != NULL)
	{
		Postorder(bTree->m_pLeft);
		Postorder(bTree->m_pRight);
		printf("%d ",bTree ->m_nValue);
	}
}
int main()
{
	BinaryTreeNode *bTree;

	bTree=CreateTree(bTree);
	printf("先序遍歷結果為:\n");
	Preorder(bTree);
	printf("\n");
	
	printf("中序遍歷結果為:\n");
	Inorder(bTree);
	printf("\n");

	printf("后序序遍歷結果為:\n");
	Postorder(bTree);
	printf("\n");

	return 0;
	system("pause");

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林甸县| 凤庆县| 南康市| 庆元县| 汝南县| 揭阳市| 芒康县| 营山县| 汤阴县| 太和县| 聊城市| 定远县| 宣威市| 泰宁县| 河西区| 华坪县| 五台县| 延安市| 孙吴县| 宝鸡市| 克什克腾旗| 开封县| 威远县| 崇礼县| 顺义区| 永嘉县| 牙克石市| 临湘市| 志丹县| 南宫市| 泰来县| 石家庄市| 新昌县| 新疆| 化隆| 安徽省| 遵化市| 花莲市| 衡阳县| 正定县| 田阳县|