複習二叉搜尋樹作的幾道題

2021-09-06 14:04:35 字數 2227 閱讀 7356

// 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 ...