亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

發布時間: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

孝义市| 永仁县| 旺苍县| 梁河县| 金沙县| 南乐县| 正阳县| 石首市| 娱乐| 钦州市| 策勒县| 怀化市| 南宫市| 河南省| 同仁县| 辽源市| 乐陵市| 雷州市| 湖州市| 浮梁县| 平塘县| 陆良县| 苏尼特左旗| 白玉县| 天津市| 萍乡市| 海宁市| 调兵山市| 平安县| 大邑县| 施甸县| 当阳市| 威远县| 武义县| 边坝县| 襄城县| 玛多县| 永济市| 恩平市| 乌鲁木齐县| 分宜县|