亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bt_fun.cpp

?? BiTree 實現二叉樹的基本功能
?? CPP
字號:
//BT_Fun.cpp
//2008.05.17
//uuhorse

#include "St_BT.h"


Status InitBiTree (BiTree &T)	//構造空二叉樹T
{
	/*
	T=( BiTree )malloc( sizeof(BiTNode) );
	T->lchild=NULL;
	T->rchild=NULL;
	*/
	T=NULL;
	return true;
}

Status CreateBiTree (BiTree &T)//按定義構造二叉樹T
{
	TElemType tempNode;

	scanf("%c",&tempNode);
	if(tempNode==' ')
	{
		T=NULL;
	}
	else
	{
		T=(BiTree) malloc (sizeof(BiTNode));
		if ( T==NULL )
			return false;
		T->data=tempNode;	//生成根節點
		CreateBiTree (T->lchild);	//構造左子樹
		CreateBiTree (T->rchild);	//構造右子樹
	}

	return true;
}

Status PreOrderTraverse ( BiTree T /*,Status (*Visit)(TElemType e) */) //前序遍歷
{

	if (T!=NULL)
	{
		if ( Visit (T) )	//訪問根節點
			if (PreOrderTraverse ( T->lchild  ))	//遍歷左子樹
				if (PreOrderTraverse ( T->rchild ))	//遍歷右子樹
					return true;
		return false;
	}
	return true;
}

Status InOrderTraverse ( BiTree T/*,Status (*Visit)(TElemType e) */ )//中序遍歷
{
	if (T!=NULL)
	{
		if (InOrderTraverse ( T->lchild  ))	//遍歷左子樹
			if ( Visit (T) )	//訪問根節點
				if (InOrderTraverse ( T->rchild ))	//遍歷右子樹
					return true;
		return false;
	}
	return true;
}	

Status PostOrderTraverse ( BiTree T/*,Status (*Visit)(TElemType e) */)//后序遍歷
{
	if (T!=NULL)
	{
		if (PostOrderTraverse ( T->lchild  ))	//遍歷左子樹
			if (PostOrderTraverse ( T->rchild ))	//遍歷右子樹
				if ( Visit (T) )	//訪問根節點
					return true;
		return false;
	}
	return true;
}

Status LevelOrderTraverse ( BiTree T/*,Status (*Visit)(TElemType e) ,int MaxSize*/)//層序遍歷
{
	#define MaxSize 100

	BiTree Qu[MaxSize];
	//Qu= (BiTNode **)malloc (sizeof(BiTree));	//定義循環隊列,用于存儲同層節點
	int front,rear;
	
	front=rear=0;
	if(!Visit (T))				///////////
		return false;
	rear++;
	Qu[rear]= T;
	while (rear!=front)
	{
		front=(front+1)%MaxSize;
		T=Qu[front];
		if (T->lchild!=	NULL)	//左孩子訪問成功
		{
			printf(" %c ",T->lchild->data);
			rear=(rear+1)%MaxSize;
			Qu[rear]=T->lchild;
		}
		if (T->rchild!=NULL)
		{
			printf(" %c ",T->rchild->data);
			rear=(rear+1)%MaxSize;
			Qu[rear]=T->rchild;
		}
	}
	printf("\n");
	return true;
}

Status DestoryBiTree (BiTree &T)	//銷毀二叉樹 T
{
	if (T==NULL)
		return false;
	DestoryBiTree (T->lchild);
	DestoryBiTree (T->rchild);
	free (T);
	T=NULL;
	return true;
}

Status BiTreeEmpty(BiTree &T)		//若T為空二叉樹,返回true,否則,返回false
{
	if( T==NULL)
	{
		return true;
	}
	else
	{
		return false;
	}
}

int BiTreeDepth (BiTree &T)	//返回樹T的深度
{
	int maxDepth=1;
	int lDepth;
	int rDepth;

	if (T==NULL)
		return 0;
	lDepth=BiTreeDepth (T->lchild);
	rDepth=BiTreeDepth (T->rchild);
	maxDepth += ( (lDepth>rDepth)? lDepth:rDepth );
	return maxDepth;
}

BiTNode Root (BiTree &T)		//返回樹T的根節點
{
	return *T;
}

Status Assign (BiTree &T, TElemType &e, TElemType value)//二叉樹存在,e是T的某個節點,節點e賦值為value
{
	BiTNode* tmp;
	tmp=FineNode (T,e);
	if (tmp==NULL)
		return false;
	tmp->data=value;
	return true;
}

BiTNode *FineNode (BiTree T, TElemType e)//查找data域為e的節點
{
	BiTNode* p=NULL;
	if (T==NULL)
	{
		return NULL;
	}
	else if(T->data==e)
	{
		return T;
	}
	else
	{
		p=FineNode (T->lchild,e);//查找左子樹
		if (p==NULL)	//如果未找到,則查找右子樹
			p=FineNode (T->rchild,e);
		return p;
	}
}

BiTNode* Parent (BiTree T, TElemType e)//返回節點e的雙親
{
	BiTNode* parent=NULL;
	if (T==NULL || (T->lchild==NULL && T->rchild==NULL))
	{
		return NULL;
	}
	else if(T->lchild!=NULL && T->lchild->data==e)
	{
		return T;
	}
	else if (T->rchild!=NULL && T->rchild->data==e)
	{
		return T;
	}
	else
	{
		parent=Parent (T->lchild,e);//查找左子樹
		if (parent==NULL)	//如果未找到,則查找右子樹
			parent=Parent (T->rchild,e);
		return parent;
	}
}

BiTNode* LeftChild (BiTree T, TElemType e)//返回節點e的左孩子
{
	if( BiTreeEmpty (T))
	{
		printf("T is NULL!\n");
		return NULL;
	}
	BiTNode* lp;
	lp=FineNode(T, e);
	return lp->lchild;
}

BiTNode* RightChild (BiTree &T, TElemType e)//返回節點e的右孩子
{
	if( BiTreeEmpty (T))
	{
		printf("T is NULL!\n");
		return NULL;
	}
	BiTNode* rp;
	rp=FineNode(T, e);
	return rp->rchild;
}

Status InsertChild (BiTree &T, BiTNode* p, Status LR, TElemType c)
//根據LR為0或1,在節點p處插入左孩子節點或右孩子節點,p原有子樹成為c的右子樹
{
	BiTree tmp;
	BiTNode* inTmp;		//////////////////
	inTmp= (BiTNode*)malloc (sizeof(BiTNode));

	if (T==NULL || p==NULL || inTmp==NULL)
		return false;
	
	#define L 0
	#define R 1
	if (LR==L)
	{
		tmp=p->lchild;
		p->lchild=inTmp;
	}
	else
	{
		tmp=p->rchild;
		p->rchild=inTmp;
	}
	inTmp->data=c;
	inTmp->lchild=NULL;
	inTmp->rchild=tmp;

	return true;
}

Status DeleteChild (BiTree &T, BiTNode* p, Status LR )
//根據LR為0或1,刪除T中p所指向節點的左孩子或右孩子
{
	if (T==NULL || p==NULL)
		return false;
	#define L 0
	#define R 1
	if (LR==L && p->lchild!=NULL)
	{
		DeleteChild (p,p->lchild,L);
		DeleteChild (p,p->lchild,R);
		free (p->lchild);
		p->lchild=NULL;
	}
	else if (LR==R && p->rchild!=NULL)
	{
		DeleteChild (p,p->rchild,L);
		DeleteChild (p,p->rchild,R);
		free (p->rchild);
		p->rchild=NULL;
	}
	return true;
}

Status Visit (BiTNode* p)//對節點進行訪問輸出
{
	if (p==NULL)
	{
		printf("節點p為空,訪問失敗!\n");
		return false;
	}
	else
	{
		printf(" %c ",p->data);
		return true;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲一区二区三区| 国产成人一级电影| 综合激情网...| 精品蜜桃在线看| 欧美日韩国产一级片| 成人av电影在线| 国产精一区二区三区| 亚洲18影院在线观看| 亚洲精品视频一区二区| 久久精品视频免费| 日韩欧美不卡一区| 欧美久久久久久蜜桃| 在线日韩国产精品| 在线中文字幕不卡| 色综合中文综合网| 久久美女艺术照精彩视频福利播放| 91电影在线观看| 91久久久免费一区二区| 92精品国产成人观看免费| 成人app下载| 成人福利视频在线| 不卡av在线免费观看| av日韩在线网站| 色婷婷av一区二区三区之一色屋| 97精品视频在线观看自产线路二| 国产精品1区2区3区在线观看| 国产精品亚洲人在线观看| 国产真实精品久久二三区| 一区二区在线观看视频在线观看| 日韩欧美国产1| 欧美精选午夜久久久乱码6080| 欧美丝袜丝交足nylons| 欧美艳星brazzers| 4438成人网| 26uuu久久天堂性欧美| 国产午夜精品福利| 成人免费小视频| 亚洲午夜久久久久久久久久久 | 中文天堂在线一区| 国产精品国模大尺度视频| 亚洲精品中文字幕在线观看| 亚洲电影一级片| 极品美女销魂一区二区三区| 国产999精品久久久久久绿帽| 一本久道久久综合中文字幕| 欧美在线不卡视频| 久久久精品免费网站| 亚洲蜜桃精久久久久久久| 日韩电影一区二区三区| 国产东北露脸精品视频| 在线亚洲一区二区| 久久亚洲综合色| 亚洲蜜臀av乱码久久精品蜜桃| 日本亚洲天堂网| 成人综合在线网站| 在线播放中文一区| 成人欧美一区二区三区在线播放| 天天综合色天天综合色h| 东方欧美亚洲色图在线| 欧美精品99久久久**| 欧美激情一区二区在线| 日韩精品免费专区| 91网站最新网址| 久久久综合九色合综国产精品| 亚洲六月丁香色婷婷综合久久| 国内精品久久久久影院一蜜桃| 在线观看国产一区二区| 国产精品色婷婷| 久久se精品一区二区| 欧美日韩亚洲综合| 亚洲色图清纯唯美| 不卡一区二区三区四区| 久久久久亚洲蜜桃| 蜜桃视频第一区免费观看| 欧美欧美午夜aⅴ在线观看| 亚洲欧美在线视频| 不卡的看片网站| 国产农村妇女毛片精品久久麻豆 | 欧美在线视频日韩| 亚洲精品乱码久久久久久日本蜜臀| 国产成人免费在线观看不卡| 欧美成人精精品一区二区频| 偷拍亚洲欧洲综合| 宅男噜噜噜66一区二区66| 性久久久久久久久久久久| 欧美亚一区二区| 亚洲成人精品一区二区| 欧美久久一二三四区| 青青草视频一区| 日韩欧美国产一二三区| 韩国在线一区二区| 国产亚洲欧美日韩在线一区| 国产精品美女久久久久av爽李琼| 日日摸夜夜添夜夜添国产精品 | 欧美成人伊人久久综合网| 久久精品国产99国产精品| 精品日韩一区二区三区| 国产综合色产在线精品| 久久精品夜色噜噜亚洲aⅴ| 丁香桃色午夜亚洲一区二区三区| 国产欧美日韩中文久久| 91在线观看美女| 亚洲第一成人在线| 精品乱码亚洲一区二区不卡| 国产精品综合二区| 亚洲裸体在线观看| 欧美一区二区三区免费| 国内精品嫩模私拍在线| 国产精品免费视频观看| 欧美日韩一二三| 国产精品中文字幕一区二区三区| 中文字幕日韩精品一区| 欧美日韩一区中文字幕| 精品一区二区影视| 国产精品不卡在线| 日韩一区二区视频| 99精品视频在线观看免费| 日本一区中文字幕| 自拍偷拍亚洲综合| 久久综合九色综合97婷婷女人| 91玉足脚交白嫩脚丫在线播放| 奇米在线7777在线精品| 国产精品久久夜| 日韩精品一区二区三区视频 | 伊人婷婷欧美激情| 久久影院视频免费| 欧美精品粉嫩高潮一区二区| 成人午夜视频在线观看| 美洲天堂一区二卡三卡四卡视频| 18欧美亚洲精品| 久久精品免视看| 日韩一级大片在线| 在线观看中文字幕不卡| 成人黄色小视频| 国产呦萝稀缺另类资源| 天天综合日日夜夜精品| 亚洲女厕所小便bbb| 亚洲欧洲国产日韩| 久久久综合精品| 精品国产区一区| 日韩视频免费直播| 日韩一区二区三区免费观看| 欧美在线你懂的| 色婷婷综合久久| 91色九色蝌蚪| 91蜜桃网址入口| 99久久精品国产网站| 国产成人av一区二区三区在线 | 欧美性高清videossexo| eeuss鲁片一区二区三区| 成人禁用看黄a在线| 国产成a人亚洲| 成人高清视频在线观看| 风间由美一区二区av101| 国产成人超碰人人澡人人澡| 国产精品综合av一区二区国产馆| 久久国产婷婷国产香蕉| 黑人巨大精品欧美一区| 国产成人精品亚洲日本在线桃色| 国产精品资源网站| 极品尤物av久久免费看| 亚洲精品中文字幕乱码三区| 亚洲欧美日韩国产综合在线| 亚洲欧美激情小说另类| 亚洲一区二区三区四区五区中文| 亚洲专区一二三| 蜜臀国产一区二区三区在线播放| 美女网站一区二区| 国产成人av一区二区三区在线观看| 国产成人在线电影| 91在线精品一区二区三区| 欧美色大人视频| wwwwxxxxx欧美| 亚洲视频免费观看| 奇米色777欧美一区二区| 国产成人免费视频一区| 欧美日韩一区二区不卡| 精品粉嫩aⅴ一区二区三区四区| 中文字幕亚洲视频| 美女在线一区二区| 成人毛片视频在线观看| 欧美顶级少妇做爰| 中文字幕欧美激情| 天堂午夜影视日韩欧美一区二区| 国产成人午夜片在线观看高清观看| 91精品办公室少妇高潮对白| 精品国产免费一区二区三区四区| 亚洲人成网站色在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 欧美在线视频日韩| 中文字幕免费在线观看视频一区| 日韩精品一区第一页| 99久久精品国产毛片| 久久综合狠狠综合久久综合88| 亚洲午夜视频在线| av电影天堂一区二区在线观看| 欧美成人猛片aaaaaaa| 亚洲成人精品一区| 在线观看av一区| 亚洲人精品一区|