麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

二叉樹

2019-11-10 19:45:35
字體:
來源:轉載
供稿:網友
#include<stdio.h>#include<stdlib.h>typedef struct Node{//結點類型	int data;	struct Node* left;	struct Node* right;}Node;typedef struct Tree{//二叉樹的類型	Node*root;//指向根結點的指針	int count;//記錄結點個數}Tree;//1 創建結點Node*CreateNode(int data){	Node*pn = (Node*)malloc(sizeof(Node));	pn->data = data;	pn->left = NULL;	pn->right = NULL;	return pn;}//2 插入新結點void Insert(Node**PRoot,Node*pNew);void InsertData(Tree*pt,int data){	Insert(&pt->root,CreateNode(data));//根結點需要指向新的插入結點,根結點指針發生變化 需要二級指針	pt->count++;}void Insert(Node**pRoot,Node*pNew){//遞歸插入	if(NULL==*pRoot)	{//空樹  結束條件 		*pRoot = pNew;	}	else if(pNew->data<(*pRoot)->data)	{//與根結點比較選擇正確的位置繼續遞歸插入		Insert(&(*pRoot)->left,pNew);	}	else	{		Insert(&(*pRoot)->right,pNew);	}}//3 遍歷void Travel(Node*root);void TravelData(Tree*pt){	Travel(pt->root);	printf("/n");}void Travel(Node*root){	if(NULL!=root)	{		Travel(root->left);//左		printf("%d ",root->data);//中 直接打印		Travel(root->right);//右	}}// 4 清空二叉樹void Clear(Node**pRoot);void ClearData(Tree*pt){	Clear(&pt->root);	pt->count = 0;}void Clear(Node**pRoot){	if(NULL!=*pRoot)	{		Clear(&(*pRoot)->left);		Clear(&(*pRoot)->right);		free(*pRoot);		*pRoot = NULL;	}}// 5 查找Node**Find(Node**pRoot,int data);Node**FindData(Tree*pt,int data){//返回的是結點指針的地址	return Find(&pt->root,data);}Node**Find(Node**pRoot,int data){	if(NULL==*pRoot)	{//空樹		return pRoot;	}	else if(data==(*pRoot)->data)	{		return pRoot;	}	else if(data<(*pRoot)->data)	{//左樹中查找 		return Find(&(*pRoot)->left,data);	}	else		return Find(&(*pRoot)->right,data);}// 6 刪除void Delete(Tree*pt,int data){	Node** pn = FindData(pt,data);	if(NULL==*pn)	{		printf("%d not exist/n",data);		return ;	}	if((*pn)->left!=NULL)	{//空樹不用插入		Insert(&(*pn)->right,(*pn)->left);//把左子樹插入到右子樹中	}	Node*q = *pn; // 保存	*pn = (*pn)->right;//把 連接好的小二叉樹    插入到上一個根結點上	free(q);	q = NULL;	pt->count--;}// 7 修改 void Modify(Tree*pt,int data,int newData){	Delete(pt,data);	InsertData(pt,newData);}// 8 判空int Isempty(Tree*pt){	return NULL == pt->root;}// 9 大小int Size(Tree*pt){	return pt->count;}// 10 取得根結點的值int GetRoot(Tree*pt){	if(!Isempty(pt))		return pt->root->data;	return -1;}int main(){	Tree tree;	tree.root = NULL;	tree.count = 0;	InsertData(&tree,10);	TravelData(&tree);	InsertData(&tree,20);	TravelData(&tree);	InsertData(&tree,8);	TravelData(&tree);	InsertData(&tree,25);	TravelData(&tree);	printf("---------------/n");	//ClearData(&tree);//	Delete(&tree,15);//	Delete(&tree,20);	Modify(&tree,20,5);	TravelData(&tree);	printf("the root is %d/n",GetRoot(&tree));	printf("count = %d/n",Size(&tree));	printf("%s/n",(Isempty(&tree))?"empty":"not empty");	ClearData(&tree);	printf("%s/n",(Isempty(&tree))?"empty":"not empty");	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九色 在线 | 日韩黄色免费观看 | 国产成人精品午夜视频' | 视频一区 日韩 | 久久99国产精品视频 | a一级黄| 成av人在线观看 | 成年免费网站 | 在线播放中文 | 久久国产免费 | 免费a视频| 色中色综合 | 失禁高潮抽搐喷水h | 欧美18—19sex性hd按摩 | 亚洲婷婷日日综合婷婷噜噜噜 | 男女做性免费网站 | 9丨九色丨国产 | 一区二区三区欧美在线观看 | 亚洲一区二区三区精品在线观看 | 国产成年人小视频 | 欧美日本综合 | 毛片视频播放 | 国产免费久久久久 | 国产成人精品免费视频大全最热 | 欧美天堂一区 | 九九热在线视频观看这里只有精品 | 一区二区三区在线播放视频 | 中国av中文字幕 | 日韩毛片免费观看 | 久久久久久亚洲综合影院红桃 | 免费一级毛片在线播放视频 | 成人福利免费在线观看 | 手机视频在线播放 | 久久国产不卡 | 国产91av视频| 91av在线免费观看 | 国产超碰人人做人人爱 | 国产免费久久久 | 国产欧美在线一区二区三区 | 国产91九色视频 | 有色视频在线观看 |