




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)基本操作(1).//
對(duì)二叉樹(shù)的基本操作的類(lèi)模板封裝//------------------------------------------------------------------------------------------------------------------------#include<iostream>usingnamespacestd;//------------------------------------------------------------------------------------------------------------------------//定義二叉樹(shù)的結(jié)點(diǎn)類(lèi)型
BTNode,
其中包含數(shù)據(jù)域、左孩子,右孩子結(jié)點(diǎn)。template<classT>structBTNode{Tdata;BTNode*lchild;BTNode*rchild;
//數(shù)據(jù)域//指向左子樹(shù)的指針//指向右子樹(shù)的指針};//------------------------------------------------------------------------------------------------------------------------//CBinary的類(lèi)模板template<classT>classBinaryTree{BTNode<T>*BT;public:BinaryTree(){BT=NULL;}
//構(gòu)造函數(shù)
,將根結(jié)點(diǎn)置空~BinaryTree(){clear(BT);}
//調(diào)用
Clear()函數(shù)將二叉樹(shù)銷(xiāo)毀voidClearBiTree(){clear(BT);BT=NULL;};
//銷(xiāo)毀一棵二叉樹(shù)voidCreateBiTree(Tend);
//創(chuàng)建一棵二叉樹(shù),
end
為空指針域標(biāo)志boolIsEmpty();intBiTreeDepth();boolRootValue(T&e);
//判斷二叉樹(shù)是否為空//計(jì)算二叉樹(shù)的深度//若二叉樹(shù)不為空用
e返回根結(jié)點(diǎn)的值,函數(shù)返回
true,否則函數(shù)返回
falseBTNode<T>*GetRoot(); //二叉樹(shù)不為空獲取根結(jié)點(diǎn)指針,否則返回 NULLboolAssign(Te,Tvalue); //找到二叉樹(shù)中值為 e的結(jié)點(diǎn),并將其值修改為 value。TGetParent(Te);//若二叉樹(shù)不空且e是二叉樹(shù)中的一個(gè)結(jié)點(diǎn)那么返回其雙親結(jié)點(diǎn)值TGetLeftChild(Te);//獲取左孩子結(jié)點(diǎn)值TGetRightChild(Te);//獲取右孩子結(jié)點(diǎn)值TGetLeftSibling(Te);//獲取左兄弟的結(jié)點(diǎn)值Trightsibling(BTNode<T>*p,Te);TGetRightSibling(Te);//獲取右孩子的結(jié)點(diǎn)值boolInsertChild(BTNode<T>*p,BTNode<T>*c,intRL);//插入操作boolDeleteChild(BTNode<T>*p,intRL);//刪除操作voidPreTraBiTree();//遞歸算法:先序遍歷二叉樹(shù)voidInTraBiTree();//遞歸算法:中序遍歷二叉樹(shù)voidPostTraBiTree();//遞歸算法:后序遍歷二叉樹(shù)voidPreTraBiTree_N();//非遞歸算法:先序遍歷二叉樹(shù)voidInTraBiTree_N();//非遞歸算法:中序遍歷二叉樹(shù)voidLevelTraBiTree();//利用隊(duì)列層次遍歷二叉樹(shù)intLeafCount();//計(jì)算葉子結(jié)點(diǎn)的個(gè)數(shù)BTNode<T>*SearchNode(Te);//尋找到結(jié)點(diǎn)值為e的結(jié)點(diǎn),返回指向結(jié)點(diǎn)的指針voidDisplayBTreeShape(BTNode<T>*bt,intlevel=1);};//二叉樹(shù)的樹(shù)形顯示算法template<classT>voidBinaryTree<T>::DisplayBTreeShape(BTNode<T>*bt,intlevel){if(bt)//空二叉樹(shù)不顯示{DisplayBTreeShape(bt->rchild,level+1);// 顯示右子樹(shù)cout<<endl;//顯示新行for(inti=0;i<level-1;i++)cout<<" ";//確保在第 level列顯示節(jié)點(diǎn)cout<<bt->data;//顯示節(jié)點(diǎn)DisplayBTreeShape(bt->lchild,level+1);// 顯示左子樹(shù)}//if}//DisplayBTreetemplate<classT>staticintclear(BTNode<T>*bt){
//銷(xiāo)毀一棵二叉樹(shù)if(bt)//根結(jié)點(diǎn)不空{(diào)clear(bt->lchild);clear(bt->rchild);
//遞歸調(diào)用//遞歸調(diào)用
Clear()Clear()
函數(shù)銷(xiāo)毀左子樹(shù)函數(shù)銷(xiāo)毀右子樹(shù)cout<<"釋放了指針 "<<bt<<"所指向的空間。 "<<endl;delete bt; //釋放當(dāng)前訪問(wèn)的根結(jié)點(diǎn)}return0;}template<classT>voidBinaryTree<T>::CreateBiTree(Tend){ //創(chuàng)建一棵二叉樹(shù):先序序列的順序輸入數(shù)據(jù),cout<<"請(qǐng)按先序序列的順序輸入二叉樹(shù) ,-1BTNode<T>*p;
end為結(jié)束的標(biāo)志為空指針域標(biāo)志: "<<endl;Tx;cin>>x; //輸入根結(jié)點(diǎn)的數(shù)據(jù)if(x==end)return; //end表示指針為空,說(shuō)明樹(shù)為空p=newBTNode<T>;// 申請(qǐng)內(nèi)存if(!p){cout<<"申請(qǐng)內(nèi)存失??! "<<endl;exit(-1);//申請(qǐng)內(nèi)存失敗退出}p->data=x;p->lchild=NULL;p->rchild=NULL;BT=p;//根結(jié)點(diǎn)create(p,1,end);//創(chuàng)建根結(jié)點(diǎn)左子樹(shù),1為標(biāo)志,表示左子樹(shù)create(p,2,end);//創(chuàng)建根結(jié)點(diǎn)右子樹(shù),2為標(biāo)志,表示右子樹(shù)}template<classT>staticintcreate(BTNode<T>*p,intk,Tend){//
靜態(tài)函數(shù),創(chuàng)建二叉樹(shù),
k為創(chuàng)建左子樹(shù)還是右子樹(shù)的標(biāo)志,
end
為空指針域的標(biāo)志BTNode<T>*q;Tx;cin>>x;if(x!=end){
//先序順序輸入數(shù)據(jù)q=newBTNode<T>;q->data=x;q->lchild=NULL;q->rchild=NULL;if(k==1)p->lchild=q; //q為左子樹(shù)if(k==2)p->rchild=q;//p 為右子樹(shù)create(q,1,end); //遞歸創(chuàng)建左子樹(shù)create(q,2,end); //遞歸創(chuàng)建右子樹(shù)}return0;}template<classT>boolBinaryTree<T>::IsEmpty(){//判斷二叉樹(shù)是否為空if(BT==NULL)returntrue;// 樹(shù)根結(jié)點(diǎn)為空,說(shuō)明樹(shù)為空returnfalse;}template<classT>intBinaryTree<T>::BiTreeDepth(){//利用遞歸算法計(jì)算樹(shù)的深度BTNode<T>*bt=BT;// 樹(shù)根結(jié)點(diǎn)intdepth=0;//開(kāi)始的時(shí)候數(shù)的深度初始化為 0if(bt)//如果樹(shù)不為空Depth(bt,1,depth);returndepth;}template<classT>staticintDepth(BTNode<T>*p,intlevel,int&depth){//這個(gè)函數(shù)由BiTreeDepth()函數(shù)調(diào)用完成樹(shù)的深度的計(jì)算//其中p是根結(jié)點(diǎn),Level是層,depth用來(lái)返回樹(shù)的深度if(level>depth)depth=level;if(p->lchild)Depth(p->lchild,level+1,depth);// 遞歸的遍歷左子樹(shù), 并且層數(shù)加 1if(p->rchild) Depth(p->rchild,level+1,depth);// 遞歸的遍歷右子樹(shù),并且層數(shù)加1return0;}template<classT>boolBinaryTree<T>::RootValue(T&e){//
若二叉樹(shù)不為空用
e返回根結(jié)點(diǎn)的值,函數(shù)返回
true,否則函數(shù)返回
falseif(BT!=NULL){
//判斷二叉樹(shù)是否為空e=BT->data;//若不空,則將根結(jié)點(diǎn)的數(shù)據(jù)賦值給 ereturntrue;//操作成功,返回
true}returnfalse;//
二叉樹(shù)為空,返回
false}template<classT>BTNode<T>*BinaryTree<T>::GetRoot(){//獲取根信息returnBT;//返回根結(jié)點(diǎn)的指針,若二叉樹(shù)為空那么返回 NULL}template<classT>boolBinaryTree<T>::Assign(Te,Tvalue){//結(jié)點(diǎn)賦值if(SearchNode(e)!=NULL){(SearchNode(e))->data=value;returntrue;}returnfalse;}template<classT>TBinaryTree<T>::GetParent(Te){//獲取雙親信息BTNode<T>*Queue[200],*p;intrear,front;rear=front=0;if(BT){Queue[rear++]=BT;while(rear!=front){p=Queue[front++];if(p->lchild&&p->lchild->data==e||p->rchild&&p->rchild->data==e)returnp->data;else{if(p->lchild)Queue[rear++]=p->lchild;if(p->rchild)Queue[rear++]=p->rchild;}}}returnNULL;}template<classT>TBinaryTree<T>::GetRightChild(Te){//如果二叉樹(shù)存在, e是二叉樹(shù)中的一個(gè)結(jié)點(diǎn),右子樹(shù)存在那么返回右子樹(shù)的結(jié)點(diǎn)值,否則返回 0并提示右子樹(shù)為空BTNode<T>*p=SearchNode(e);if(p->rchild)returnp->rchild->data;// 右子樹(shù)不空,返回右子樹(shù)根結(jié)點(diǎn)的值cout<<"結(jié)點(diǎn)"<<e<<"的右子樹(shù)為空 "<<endl;return0;}template<classT>TBinaryTree<T>::GetLeftChild(Te){//如果二叉樹(shù)存在, e是二叉樹(shù)中的一個(gè)結(jié)點(diǎn),左子樹(shù)存在那么返回左子樹(shù)的結(jié)點(diǎn)值,否則返回 0并提示左子樹(shù)為空BTNode<T>*p=SearchNode(e);if(p->lchild)returnp->lchild->data;cout<<"結(jié)點(diǎn)"<<e<<"的左子樹(shù)為空 "<<endl;return0;}template<classT>TBinaryTree<T>::GetLeftSibling(Te){//獲取左兄弟信息if(BT!=NULL){returnleftsibling(BT,e);}else{//二叉樹(shù)為空cout<<"二叉樹(shù)為空! "<<endl;return0;}}template<classT>Tleftsibling(BTNode<T>*p,Te){Tq=0;if(p==NULL)return0;else{if(p->rchild){if(p->rchild->data==e){if(p->lchild)returnp->lchild->data;elsereturnNULL;}}q=leftsibling(p->lchild,e);if(q)returnq;q=leftsibling(p->rchild,e);if(q)returnq;}return0;}//------------------------------------------------------------------------------------------------------------------------template<classT>TBinaryTree<T>::GetRightSibling(Te){//獲取右兄弟信息if(BT!=NULL){returnrightsibling(BT,e);}else{//二叉樹(shù)為空cout<<"二叉樹(shù)為空! "<<endl;return0;}}template<classT>TBinaryTree<T>::rightsibling(BTNode<T>*p,Te){BTNode<T>*q=SearchNode(e);BTNode<T>*pp;if(q){pp=SearchNode(GetParent(e));if(pp){if(pp->rchild)returnpp->rchild->data;elsereturn0;}elsereturn0;}return0;}template<classT>boolBinaryTree<T>::InsertChild(BTNode<T>*p,BTNode<T>*c,intLR){//插入孩子if(p){if(LR==0){c->rchild=p->lchild;p->lchild=c;}else{c->rchild=p->rchild;p->rchild=c;}returntrue;}returnfalse;//p為空}//------------------------------------------------------------------------------------------------------------------------template<classT>boolBinaryTree<T>::DeleteChild(BTNode<T>*p,intRL){//刪除結(jié)點(diǎn)if(p){if(RL==0){clear(p->lchild);// 釋放p右子樹(shù)的所有結(jié)點(diǎn)空間p->lchild=NULL;}else{clear(p->rchild);p->rchild=NULL;}returntrue;//刪除成功}returnfalse;//p為空}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::PreTraBiTree(){//先序遍歷二叉樹(shù)cout<<"----------------------------------------------"<<endl;cout<<"先序遍歷二叉樹(shù) :";BTNode<T>*p;p=BT; //根結(jié)點(diǎn)PreTraverse(p);//從根結(jié)點(diǎn)開(kāi)始先序遍歷二叉樹(shù)cout<<endl;cout<<"----------------------------------------------"<<endl;}template<classT>staticintPreTraverse(BTNode<T>*p){if(p!=NULL){cout<<p->data<<''; //輸出結(jié)點(diǎn)上的數(shù)據(jù)PreTraverse(p->lchild); //遞歸的調(diào)用前序遍歷左子樹(shù)PreTraverse(p->rchild); //遞歸的調(diào)用前序遍歷右子樹(shù)}return0;}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::InTraBiTree(){//中序遍歷二叉樹(shù)cout<<"----------------------------------------------"<<endl;cout<<"中序遍歷二叉樹(shù) :";BTNode<T>*p;p=BT;//根結(jié)點(diǎn)InTraverse(p);//從根結(jié)點(diǎn)開(kāi)始中序遍歷二叉樹(shù)cout<<endl;cout<<"----------------------------------------------"<<endl;}template<classT>staticintInTraverse(BTNode<T>*p){if(p!=NULL){InTraverse(p->lchild);cout<<p->data<<'';InTraverse(p->rchild);
//遞歸的調(diào)用中序遍歷左子樹(shù)//輸出結(jié)點(diǎn)上的數(shù)據(jù)//遞歸的調(diào)用中序遍歷右子樹(shù)}return0;}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::PostTraBiTree(){//后序遍歷二叉樹(shù)cout<<"----------------------------------------------"<<endl;cout<<"后序遍歷二叉樹(shù) :";BTNode<T>*p;p=BT;//根結(jié)點(diǎn)PostTraverse(p);//從根結(jié)點(diǎn)開(kāi)始遍歷二叉樹(shù)cout<<endl;cout<<"----------------------------------------------"<<endl;}template<classT>staticintPostTraverse(BTNode<T>*p){if(p!=NULL){PostTraverse(p->lchild);//PostTraverse(p->rchild);//cout<<p->data<<'';
遞歸調(diào)用后序遍歷左子樹(shù)遞歸調(diào)用后序遍歷右子樹(shù)//輸出結(jié)點(diǎn)上的數(shù)據(jù)}return0;}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::PreTraBiTree_N(){//cout<<"----------------------------------------------"<<endl;cout<<"先序(非遞歸)遍歷二叉樹(shù)得: ";BTNode<T>*Stack[200];// 利用指針數(shù)組作為棧inttop=0;BTNode<T>*p=BT;// 將根結(jié)點(diǎn)的指針賦值給 pwhile(p!=NULL||top!=0){while(p!=NULL){cout<<p->data<<"";Stack[top++]=p->rchild;p=p->lchild;}if(top!=0){p=Stack[--top];}}cout<<"\n----------------------------------------------"<<endl;}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::InTraBiTree_N(){//非遞歸中序遍歷二叉樹(shù)cout<<"----------------------------------------------"<<endl;cout<<"中序(非遞歸)遍歷二叉樹(shù)得: ";inttop=0;BTNode<T>*Stack[200];BTNode<T>*p=BT;while(p||top){while(p){Stack[top++]=p;p=p->lchild;}if(top){p=Stack[--top];cout<<p->data<<'';p=p->rchild;}}cout<<"\n----------------------------------------------"<<endl;}//------------------------------------------------------------------------------------------------------------------------template<classT>voidBinaryTree<T>::LevelTraBiTree(){//利用隊(duì)列 Queue層次遍歷二叉樹(shù)BTNode<T>*Queue[100];
//利用一維數(shù)組作為隊(duì)列,存放結(jié)點(diǎn)的指針BTNode<T>*b;intfront,rear;front=rear=0;
//指向隊(duì)列的頭和尾下標(biāo)//隊(duì)列初始為空cout<<"----------------------------------------------"<<endl;if(BT)
//若二叉樹(shù)不為空。{Queue[rear++]=BT;
//二叉樹(shù)的根結(jié)點(diǎn)指針進(jìn)隊(duì)列。while(front!=rear) //隊(duì)列不為空。{b=Queue[front++]; //隊(duì)首的元素出隊(duì)列if(b)cout<<b->data<<''; //輸出結(jié)點(diǎn)的值if(b->lchild)Queue[rear++]=b->lchild;// 如果左子樹(shù)不空,進(jìn)隊(duì)。if(b->rchild)Queue[rear++]=b->rchild;// 如果右子樹(shù)不空,進(jìn)隊(duì)。}}cout<<"\n----------------------------------------------"<<endl;}template<classT>intBinaryTree<T>::LeafCount(){//計(jì)算葉子的個(gè)數(shù)intcount=0;returnLeaf(BT,count);}template<classT>staticintLeaf(BTNode<T>*p,int&count){//staticintcount=0;//靜態(tài)變量,存放葉子結(jié)點(diǎn)的個(gè)數(shù)if(p){if(p->lchild==NULL&&p->rchild==NULL) count++;//判斷是否為葉子結(jié)點(diǎn)Leaf(p->lchild,count);// 遞歸遍歷左子樹(shù)Leaf(p->rchild,count);// 遞歸遍歷右子樹(shù)}returncount;}template<classT>BTNode<T>*BinaryTree<T>::SearchNode(Te){//結(jié)點(diǎn)查詢(xún)BTNode<T>*t;if(BT){if(BT->data==e) returnBT;t=search(BT->lchild,e);// 在左子樹(shù)中查找if(t)returnt;t=search(BT->rchild,e);//在右子樹(shù)查找if(t)returnt;}returnNULL;}template<classT>staticBTNode<T>*search(BTNode<T>*bn,Te){BTNode<T>*t;if(bn){if(bn->data==e) {returnbn;}t=search(bn->lchild,e);//遞歸查找左子樹(shù)if(t)returnt;t=search(bn->rchild,e);//遞歸查找右子樹(shù)if(t)returnt;}returnNULL;}//------------------------------------------------------------------------------------------------------------------------(2).#include"BinaryTree.cpp"#include"windows.h"intmain(){intMainMenu=-1;BinaryTree<int>T;BinaryTree<int>t;while(MainMenu!=6){system("cls");cout<<"--------------主菜單--------------"<<endl;cout<<"1--創(chuàng)建二叉樹(shù)(元素類(lèi)型為整數(shù))"<<endl;cout<<"2--樹(shù)形顯示二叉樹(shù)"<<endl;cout<<"3--獲取二叉樹(shù)信息>>【進(jìn)入子菜單】"<<endl;cout<<"4--對(duì)二叉樹(shù)操作>>【進(jìn)入子菜單】"<<endl;cout<<"5--遍歷二叉樹(shù)>>【進(jìn)入子菜單】"<<endl;cout<<"6--退出"<<endl;cout<<"----------------------------------"<<endl;cout<<"請(qǐng)選擇操作:[]";cout<<"\b\b";cin>>MainMenu;switch(MainMenu){case1:T.CreateBiTree(-1);break;case2:cout<<"下面顯示的是一棵左轉(zhuǎn)了 90度的樹(shù)!"<<endl;T.DisplayBTreeShape(T.GetRoot());// 第一個(gè)參數(shù)是根結(jié)點(diǎn)指針,第二個(gè)參數(shù)為默認(rèn)的 1cout<<endl;system("pause");break;case3:intop;//cin>>op;do{//system("cls");cout<<"---3-獲取二叉樹(shù)信息---------"<<endl;cout<<"0.返回主菜單"<<endl;cout<<"1.獲取樹(shù)根結(jié)點(diǎn)值"<<endl;cout<<"2.判斷樹(shù)是否為空"<<endl;cout<<"3.求樹(shù)的深度"<<endl;cout<<"4.雙親結(jié)點(diǎn)值"<<endl;cout<<"5.左孩子值"<<endl;cout<<"6.右孩子值"<<endl;cout<<"7.左兄弟值"<<endl;cout<<"8.右兄弟值"<<endl;cout<<"9.葉子結(jié)點(diǎn)的個(gè)數(shù)"<<endl;cout<<"10.樹(shù)形顯示二叉樹(shù)"<<endl;cout<<"------------------------------"<<endl;cout<<"請(qǐng)選擇操作: [ ]";cout<<"\b\b\b";cin>>op;switch(op){case1:introot;if(T.RootValue(root)==true)cout<<"樹(shù)根結(jié)點(diǎn)的值為: "<<root<<endl;elsecout<<"二叉樹(shù)為空 "<<endl;system("pause");break;case2:if(T.IsEmpty()==true)cout<<"二叉樹(shù)為空! "<<endl;elsecout<<"二叉樹(shù)不空! "<<endl;system("pause");break;case3:cout<<"二叉樹(shù)的深度為: "<<T.BiTreeDepth()<<endl;system("pause");break;case4:cout<<"請(qǐng)輸入結(jié)點(diǎn)值: ";intnode1;cin>>node1;cout<<"該結(jié)點(diǎn)的雙親結(jié)點(diǎn)為: "<<T.GetParent(node1)<<endl;system("pause");break;case5:cout<<"請(qǐng)輸入結(jié)點(diǎn)值: ";intnode2;cin>>node2;cout<<" 該 結(jié) 點(diǎn) 的 左 孩 子 結(jié) 點(diǎn) 值 為 :"<<T.GetLeftChild(node2)<<endl;system("pause");break;case6:cout<<"請(qǐng)輸入結(jié)點(diǎn)值: ";intnode3;cin>>node3;cout<<" 該 結(jié) 點(diǎn) 的 右 孩 子 結(jié) 點(diǎn) 值 為 :"<<T.GetRightChild(node3)<<endl;system("pause");break;case7:cout<<"請(qǐng)輸入結(jié)點(diǎn)值: ";intnode4;cin>>node4;cout<<" 該 結(jié) 點(diǎn) 的 左 兄 弟 結(jié) 點(diǎn) 值 為 :"<<T.GetLeftSibling(node4)<<endl;system("pause");break;case8:cout<<"請(qǐng)輸入結(jié)點(diǎn)值: ";intnode5;cin>>node5;cout<<" 該 結(jié) 點(diǎn) 的 右 兄 弟 結(jié) 點(diǎn) 值 為 :"<<T.GetRightSibling(node5)<<endl;system("pause");break;case9:cout<<"二叉樹(shù)的葉子結(jié)點(diǎn)個(gè)數(shù)為:"<<T.LeafCount()<<endl;system("pause");break;case10:cout<<"下面顯示的是一棵左轉(zhuǎn)了90度的二叉樹(shù)!"<<endl;T.DisplayBTreeShape(T.GetRoot());//第一個(gè)參數(shù)是根結(jié)點(diǎn)指針,第二個(gè)參數(shù)為默認(rèn)的 1cout<<endl;system("pause");break;default:break;}}while(op!=0);break;case4:intop2;do{cout<<"---------4 對(duì)二叉樹(shù)進(jìn)行操作cout<<"0. 返回主菜單"<<endl;cout<<"1. 銷(xiāo)毀二叉樹(shù)"<<endl;cout<<"2. 給指定結(jié)點(diǎn)賦值 "<<endl;cout<<"3. 插入"<<endl;cout<<"4. 刪除"<<endl;cout<<"5. 顯示二叉樹(shù)"<<endl;
----------"<<endl;cout<<"------------------------------------"<<endl;cout<<"請(qǐng)選擇操作: []";cout<<"\b\b";cin>>op2;switch(op2){case0:break;case1:T.ClearBiTree();cout<<"已經(jīng)將二叉樹(shù)銷(xiāo)毀! "<<endl;system("pause");break;case2:intChangeValue;//
要改變的結(jié)點(diǎn)值intNewValue;//
修改之后的結(jié)點(diǎn)值cout<<"
請(qǐng)輸入要修改的結(jié)點(diǎn)值:
";cin>>ChangeValue;cout<<"請(qǐng)輸入修改之后的結(jié)點(diǎn)值:cin>>NewValue;if(T.SearchNode(ChangeValue)){
"<<endl;(T.SearchNode(ChangeValue))->data=NewValue;cout<<"修改成功! "<<endl;}else{cout<<"修改失??! "<<endl;}system("pause");break;case3:cout<<"請(qǐng)創(chuàng)建一棵沒(méi)有右子樹(shù)的二叉樹(shù): "<<endl;t.CreateBiTree(-1);cout<<"請(qǐng)輸入要插入的二叉樹(shù)的結(jié)點(diǎn)值 "<<endl;in
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 3項(xiàng)目三 票卡媒介及應(yīng)用
- 河理工采煤概論課件第11章 礦山壓力及其控制
- 河南省駐馬店市驛城區(qū)2024-2025學(xué)年五年級(jí)下學(xué)期期末語(yǔ)文試卷(有答案)
- 合同評(píng)審會(huì)議紀(jì)要撰寫(xiě)規(guī)范
- 2024-2025學(xué)年江蘇省淮安市實(shí)驗(yàn)小學(xué)譯林版(三起)(2012)五年級(jí)下冊(cè)期末測(cè)試英語(yǔ)試卷(含答案)
- 2025秋初中數(shù)學(xué)九年級(jí)上冊(cè)人教版教案設(shè)計(jì) 22.1.1二次函數(shù)-1教案
- 科技活動(dòng)AI+數(shù)智應(yīng)用化如何助力長(zhǎng)效合作
- 文言文專(zhuān)項(xiàng)練習(xí)(考點(diǎn)剖析對(duì)點(diǎn)訓(xùn)練)原卷版-2023年高一語(yǔ)文寒假課(統(tǒng)編版)
- 四年級(jí)數(shù)學(xué)下冊(cè)期末重點(diǎn)必背知識(shí)
- 通知(復(fù)習(xí)講義)-2026年高考英語(yǔ)一輪復(fù)習(xí)解析版
- 2025-2030中國(guó)混凝土研磨機(jī)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025上半年中學(xué)教師資格證考試《語(yǔ)文學(xué)科知識(shí)與教學(xué)能力》真題卷
- 2025-2030中國(guó)電動(dòng)自行車(chē)充電樁行業(yè)市場(chǎng)深度分析及發(fā)展前景與投資研究報(bào)告
- 公司聘用總經(jīng)理合同書(shū)
- 藥劑教學(xué)資源庫(kù)建設(shè)《醫(yī)藥商品基礎(chǔ)》課程標(biāo)準(zhǔn)
- 中國(guó)人口研究專(zhuān)題報(bào)告-中國(guó)2025-2100年人口預(yù)測(cè)與政策建議
- 《銷(xiāo)售顧問(wèn)的角色認(rèn)知》課件
- SIEMENS西門(mén)子蒸箱使用說(shuō)明書(shū)用戶(hù)手冊(cè)
- 設(shè)計(jì)與實(shí)際施工的協(xié)調(diào)措施
- 科技安全教育從理論到實(shí)踐的轉(zhuǎn)化案例
- 《小學(xué)數(shù)學(xué)作業(yè)分層設(shè)計(jì)的研究》結(jié)題報(bào)告
評(píng)論
0/150
提交評(píng)論