// findtree2.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include
#include "stdafx.h"
using namespace std;
typedef struct _treenode
treenode,*ptreenode;
void prewalk(treenode* p)
void inwalk(treenode* p)
void postwalk(treenode* p)
else if( data < (*ptree)->data )
else
}void createfindtree2( treenode** ptree)
else}}
//treenode* findtreenode2( char data,treenode** ptree)
else if( data < (*ptree)->data )
else
return pretnode;
}//尋找前驅結點
treenode* findpretreenode2( treenode* pnode)
else if( pnode->lchild->rchild == null)
else
return pretnode;
}//尋找後繼結點
treenode* findposttreenode2( treenode* pnode)
else if( pnode->rchild->lchild == null)
else
return pretnode;
}bool deletefindtree2(char data ,treenode* parentnode, treenode** ptree)
else if( ((*ptree)->rchild != null) && ((*ptree)->lchild == null ))
else if( ((*ptree)->lchild != null) && ((*ptree)->rchild != null ))
//先把左孩子掛到後繼左孩子
ppostnode->lchild = (*ptree)->lchild;
//如果後繼不是右孩子
if( ppostnode != (*ptree)->rchild )
*ptree = ppostnode;
}else
delete delnode;
}else
else if( ((*ptree)->rchild != null) && ((*ptree)->lchild == null ))
else if( ((*ptree)->lchild != null) && ((*ptree)->rchild != null ))
//先把左孩子掛到後繼左孩子
ppostnode->lchild = (*ptree)->lchild;
//如果後繼不是右孩子
if( ppostnode != (*ptree)->rchild )
parentnode->lchild = ppostnode;
}else
delete delnode;
}else if( parentnode->rchild == *ptree )
else if( ((*ptree)->rchild != null) && ((*ptree)->lchild == null ))
else if( ((*ptree)->lchild != null) && ((*ptree)->rchild != null ))
//先把左孩子掛到後繼左孩子
ppostnode->lchild = (*ptree)->lchild;
//如果後繼不是右孩子
if( ppostnode != (*ptree)->rchild )
parentnode->rchild = ppostnode;
}else
delete delnode;}}
bdelete = true;
}else if( data < (*ptree)->data )
else
return bdelete;
}int _tmain(int argc, _tchar* argv)
牛客網 二叉搜尋樹 二叉搜尋樹複習
判斷兩序列是否為同一二叉搜尋樹序列 輸入描述 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序...
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...
二叉搜尋樹 修剪二叉搜尋樹
第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...