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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bst.cpp

?? 二叉樹的應(yīng)用
?? CPP
字號(hào):
#include"stdio.h"
#include"malloc.h"
#define size  100
#define  SIZE 10
#define  MORE 10 
#define OK 1
#define ERRO 0
int n;   /*統(tǒng)計(jì)插入的結(jié)點(diǎn)個(gè)數(shù)*/

/*二叉樹結(jié)構(gòu)體定義*/
typedef struct BST{
int data;
BST *lchild;
BST *rchild;
}BST;

/*隊(duì)列的結(jié)構(gòu)類型定義*/
typedef struct{
BST *base;
int front;
int rear;
}SqQueue;

/*棧的結(jié)構(gòu)類型定義*/
typedef struct{
BST *base;
BST *top;
int stacksize;
}SqStack;

SqQueue Q;/*隊(duì)列變量 Q*/


/************ 主菜單************/
void menu(){
printf("\n1、insert:");
printf("\n2、diaplay:");
printf("\n3、search:");
printf("\n4、Inorder(非遞歸):");
printf("\n5、depth:");
printf("\n6、joint:");
printf("\n7、Layer:");
printf("\n8、Change:");
printf("\n0、quit:");
printf("\nchoose: "); 
}



/************ 構(gòu)建空二叉樹************/
BST *InitBST(){
BST *T;
T=(BST *)malloc(sizeof(BST));
if(!T)return NULL;
T->lchild=NULL;
T->rchild=NULL;
n=0;
return T;
}

/****空樹的判斷************/
int EmptyBST(int n){
	if(n==0){
		printf("The tree is empty,unanble to display!!\n");
		return OK;
	}
else return ERRO;
}

/********查找函數(shù)********/
int search(BST *T,int e){
	if(T){  
		/*判斷查找的結(jié)點(diǎn)是否存在*/
		/*要查找的結(jié)點(diǎn)大于比較的結(jié)點(diǎn),即向右子樹查找*/
		/*要查找的結(jié)點(diǎn)小于比較的結(jié)點(diǎn),即向左子樹查找*/
		if((T->data==e)?1:((e>T->data)?search(T->rchild,e):search(T->lchild,e)))
			return OK;
	else return ERRO;
	}
    else return 0;

}
/************ 插入操作************/
BST *InsertBST(BST *T){
BST *p,*q;
int GO=1;
int x;
p=T;
printf("please intput the joint: ");
scanf("%d",&x);
if(n==0){
T->data=x;
printf("The joint inserts successful!\n");
}
else{
	/*調(diào)用查找函數(shù)判斷待插入的結(jié)點(diǎn)是否已存在*/
	/*已存在即不再插入該元素*/
	/*不存在即插入該結(jié)點(diǎn)*/
	if(!search(T,x)){
q=(BST *)malloc(sizeof(BST));
q->data=x;
q->lchild=NULL;
q->rchild=NULL;
while(GO){
if(x>p->data)
p->rchild==NULL?(GO=0,p->rchild=q):p=p->rchild;
else
p->lchild==NULL?(GO=0,p->lchild=q):p=p->lchild;
	}
printf("The joint has been inserted!\n");
	}
	else {
		printf("The number have been inserted!\n");
    	printf("So there couldnot insert again!");
	}
}
n++;
return T;
}

/*棧的各類操作*/
/*********初始化棧*******/
void Initstack(SqStack &L){
	L.stacksize=SIZE;
	L.base=(BST *)malloc(L.stacksize*sizeof(BST));
	L.top=L.base;
}

/************push()進(jìn)棧***********/
void push(SqStack &L,BST *e)
{  
	if(L.top-L.base>=L.stacksize)
	{
		L.base=(BST *)realloc(L.base,(L.stacksize+MORE)*sizeof(BST));
		if (!L.base)  printf("error!\n");
		L.top=L.base+L.stacksize;
		L.stacksize+=MORE;
	}
	L.top->data=e->data;
		L.top->lchild=e->lchild;
			L.top->rchild=e->rchild;
L.top++;
}
/*************pop()出棧***************/
BST *Pop(SqStack &L){

	if(L.base==L.top)
		return NULL;
	else
	   return(--L.top);
}
/**********空棧判斷**********/
int StackEmpty(SqStack L){
if(L.base==L.top)return OK;
else return ERRO;
}

/*隊(duì)列的各項(xiàng)操作*/
/********隊(duì)列初始化*******/
void Init(SqQueue &Q){   
Q.base=(BST *)malloc(size*sizeof(BST));
if(!Q.base)printf("\n空間分配失敗!\n");
else{Q.front=Q.rear=0;}
}
/******隊(duì)空判斷*******/
int EmptyQueue(SqQueue Q){   
if(Q.rear==Q.front)  
	return 1;
else return 0;
}
/*****入隊(duì)處理*******/
void EnQueue(SqQueue &Q,BST*e){    
Q.base[Q.rear].data=e->data;
Q.base[Q.rear].lchild=e->lchild;
Q.base[Q.rear].rchild=e->rchild;
Q.rear=(Q.rear+1)%size;
}
/******出隊(duì)處理******/
void DeQueue(SqQueue &Q){  
if(EmptyQueue(Q));
else 
	Q.front=(Q.front+1)%size;
}
/******讀取隊(duì)頭元素*******/
BST* TopQueue(SqQueue Q){  
	if(EmptyQueue(Q))return NULL;
else
return&(Q.base[Q.front]);
}

/************ 前序遍歷遞歸************/
void PreOrderTraverse(BST *T){
if(T)printf("%d  ",T->data);
if(T->lchild)PreOrderTraverse(T->lchild);
if(T->rchild)PreOrderTraverse(T->rchild);
}
/************ 中序遍歷非遞歸************/
void InorderTraverse(BST *T){
	SqStack L;
	BST *p;
	p=T;
    Initstack(L);
	if(EmptyBST(n))return;
	while(p||!StackEmpty(L)){
		if(p){push(L,p);p=p->lchild;}
		else{
		p=Pop(L);
		if(p)printf("%d  ",p->data);
		p=p->rchild;
		}
	}
}
/************ 中序遍歷遞歸************/
void InOrderTraverse(BST *T){
if(T->lchild)InOrderTraverse(T->lchild);
if(T)printf("%d  ",T->data);
if(T->rchild)InOrderTraverse(T->rchild);
}
/************ 后序遍歷遞歸************/
void PostOrderTraverse(BST *T){
	if(T->lchild){
	
    PostOrderTraverse(T->lchild);
	}
	if(T->rchild){
   PostOrderTraverse(T->rchild);
	
	}printf("%d  ",T->data);
}
/**************深度depth()**************/
int Depth(BST *T)             
{int n=-1;
int l,r;
if(T)
{r=Depth(T->rchild);
l=Depth(T->lchild);
if(r>=l)
n=r;
if(l>=r)
n=l;}	
return (n+1);}
/***************結(jié)點(diǎn)數(shù)*****************/
void joint(BST*T,int &N){
if(T->lchild==NULL&&T->rchild==NULL)
N+=1;
if(T->lchild)joint(T->lchild,N);
if(T->rchild)joint(T->rchild,N);
}
/***********Change交換結(jié)點(diǎn)***********/
void Change(BST *T){
BST *p;
if(T->lchild)
Change(T->lchild);
if(T->rchild)
Change(T->rchild);
p=T->lchild;
T->lchild=T->rchild;
T->rchild=p;
}

/************層次輸出*************/
void Layer(BST *T){
if(T->lchild)EnQueue(Q,T->lchild);
if(T->rchild)EnQueue(Q,T->rchild);
printf("%d  ",*TopQueue(Q));
DeQueue(Q);
if(EmptyQueue(Q))return;
Layer(TopQueue(Q));
}


/************輸出相關(guān)處理函數(shù)************/
void output(BST*T){
if(EmptyBST(n))return;
printf("\npreOrderTraverse::  ");
PreOrderTraverse(T);
printf("\nInOrderTraverse::   ");
InOrderTraverse(T);
printf("\npostTraverse:: ");
PostOrderTraverse(T);
}
/************ 主函數(shù)************/
void main(){
BST *T;
int e,N;
int sel=3;
T=InitBST();
while(sel){
menu();
scanf("%d",&sel);
switch(sel){
case 1:
	T=InsertBST(T);
	break;
case 2:
	output(T);
	break;
case 3:
	printf("\nplease input a joint: ");
	scanf("%d",&e);
	if(search(T,e))
		printf("\nFind it!\n");
	else printf("\nUnfound!\n");
	break;
case 4:	
	if(T)printf("InOrderTraverse: ");
	InorderTraverse(T);
	break;
case 5:
	printf("The depth of the tree: ");
	if(n==0)printf("0");
	else
	printf(" %d",Depth(T));
	break;
case 6:
	N=0;
    joint(T,N);
	printf("There is %d joints!",N);
	break;
case 7:
	if(EmptyBST(n))break;
	Init(Q);
	printf("Data output by layer: ");
	EnQueue(Q,T);
	Layer(T);break;
case 8:Change(T);
	printf("The chilren of the joint have been changed!");
	break;
} 
}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区色| 91国偷自产一区二区使用方法| 91精品国产一区二区| 亚洲成人av免费| 日韩一区二区在线免费观看| 美女一区二区久久| 久久久久久99久久久精品网站| 国产999精品久久| 亚洲欧美日韩成人高清在线一区| 欧美最猛性xxxxx直播| 日本欧美在线观看| 久久在线观看免费| k8久久久一区二区三区| 亚洲精选在线视频| 日韩写真欧美这视频| 懂色av一区二区在线播放| 一区二区在线看| 日韩欧美中文字幕一区| 成人一道本在线| 午夜电影网一区| 国产婷婷精品av在线| 在线影视一区二区三区| 久久丁香综合五月国产三级网站| 国产区在线观看成人精品| 色就色 综合激情| 久草热8精品视频在线观看| 中文字幕一区二区三区在线不卡| 欧美日韩国产天堂| 国产电影一区二区三区| 亚洲国产成人tv| 国产欧美日韩精品一区| 91精品国产综合久久久久久漫画| 成人免费毛片高清视频| 丝袜亚洲另类欧美综合| 综合电影一区二区三区 | 欧美成人a∨高清免费观看| 成人性生交大片免费看视频在线| 亚洲自拍偷拍麻豆| 国产精品伦一区| 日韩一区二区精品葵司在线| 91麻豆自制传媒国产之光| 麻豆精品在线观看| 亚洲一区免费在线观看| 中文字幕高清不卡| 精品91自产拍在线观看一区| 欧美视频一区二区三区四区| 成人综合在线观看| 久久精品国产亚洲5555| 亚洲综合色噜噜狠狠| 国产精品久久久久永久免费观看| 91精品国产品国语在线不卡| 91极品视觉盛宴| 粉嫩aⅴ一区二区三区四区| 美女视频黄免费的久久| 亚洲国产精品一区二区www| 亚洲欧洲国产日韩| 国产性色一区二区| 亚洲精品在线免费观看视频| 欧美日韩精品免费| 欧美亚洲综合久久| 色婷婷国产精品| 91丨九色丨国产丨porny| 成人久久久精品乱码一区二区三区| 久久精品国产亚洲aⅴ| 日韩av二区在线播放| 天堂午夜影视日韩欧美一区二区| 依依成人综合视频| 一区二区免费在线| 一区二区欧美在线观看| 亚洲精品国产一区二区精华液| 国产精品美女久久福利网站 | 中文字幕av资源一区| 亚洲精品一区二区三区蜜桃下载| 欧美精品三级在线观看| 欧美日韩精品三区| 欧美日韩视频在线观看一区二区三区 | 国产欧美一区二区在线| 久久久99免费| 国产精品久久久久永久免费观看| 中文字幕乱码一区二区免费| 国产精品午夜春色av| 国产精品久久久久久久久搜平片| 中文字幕欧美激情一区| 国产精品高潮久久久久无| 中文字幕日韩精品一区| 亚洲天堂2014| 亚洲国产综合人成综合网站| 五月婷婷另类国产| 美女性感视频久久| 国产v综合v亚洲欧| www.爱久久.com| 欧洲国产伦久久久久久久| 欧美精品高清视频| 欧美精品一区二区三区蜜桃 | 精品国产伦一区二区三区观看体验| 日韩三级中文字幕| 久久久亚洲精品石原莉奈| 中文字幕精品三区| 亚洲成人动漫在线观看| 久热成人在线视频| 99久久99久久久精品齐齐| 欧美艳星brazzers| 久久综合色8888| 亚洲人成在线播放网站岛国| 亚洲成人免费观看| 久久精品国内一区二区三区| 高清国产一区二区| 欧美视频一区二区在线观看| 欧美大片日本大片免费观看| 中文字幕免费观看一区| 亚洲国产成人精品视频| 国产成人精品亚洲午夜麻豆| 色婷婷久久久综合中文字幕| 欧美一区二区三区成人| 一区二区中文字幕在线| 奇米亚洲午夜久久精品| 国产一区二区三区| 在线观看一区日韩| 久久精品一区二区三区不卡牛牛| 亚洲精品免费在线观看| 激情亚洲综合在线| 欧洲精品一区二区三区在线观看| 欧美精品一区二区精品网| 一区二区三区四区不卡在线| 久久99精品网久久| 在线观看亚洲专区| 国产视频在线观看一区二区三区 | 天天色图综合网| 国产不卡在线视频| 日韩一级免费一区| 亚洲精品国产精华液| 成人午夜在线视频| 日韩欧美国产wwwww| 一区二区免费视频| 国产成人综合亚洲91猫咪| 欧美日韩久久久一区| 中文字幕电影一区| 国产精品综合网| 在线91免费看| 亚洲一区免费视频| 成人av网站免费| 久久蜜臀精品av| 日韩成人精品在线观看| 色婷婷一区二区三区四区| 国产喂奶挤奶一区二区三区| 琪琪一区二区三区| 欧美日韩亚洲综合一区| 亚洲精品老司机| 99精品久久99久久久久| 欧美韩日一区二区三区| 国产专区欧美精品| 日韩精品一区二区三区四区| 日韩中文字幕一区二区三区| 日本电影亚洲天堂一区| 亚洲人成在线观看一区二区| av电影在线观看完整版一区二区| 久久综合久久99| 国产在线观看一区二区| 精品少妇一区二区三区免费观看| 日韩电影在线观看网站| 欧美肥大bbwbbw高潮| 午夜视频一区二区| 在线电影一区二区三区| 午夜精品久久久久久| 欧美亚州韩日在线看免费版国语版| 亚洲欧洲日韩综合一区二区| 波多野结衣视频一区| 亚洲欧洲日韩av| 91女人视频在线观看| 1024精品合集| 色吧成人激情小说| 亚洲一区二区偷拍精品| 99久久99久久精品免费看蜜桃| 国产精品久久久久久久蜜臀| 91在线你懂得| 亚洲国产一区视频| 欧美日韩二区三区| 另类小说视频一区二区| 久久精品视频一区| 成人av在线影院| 亚洲日本在线视频观看| 欧美色国产精品| 久久精品国产99国产| 国产婷婷色一区二区三区四区| 不卡一区二区三区四区| 亚洲激情自拍偷拍| 欧美一区二区精品在线| 韩国女主播一区二区三区| 国产调教视频一区| 99国产精品视频免费观看| 一区二区成人在线| 日韩欧美黄色影院| 成人激情开心网| 亚洲午夜在线电影| 精品嫩草影院久久| 色综合天天性综合| 免费看欧美美女黄的网站| 国产人伦精品一区二区| 91麻豆123| 久久av资源网|