二叉搜尋樹

2021-07-29 15:40:57 字數 1165 閱讀 5084

/*二叉搜尋樹.cpp*/

#include using namespace std;

template class tree_node

t data;

tree_node *left, *right;

};templateclass btree

;templatebtree::btree()

template void btree::tree_creat(t x)//建立二叉樹函式;

else

if (x > before->data) delete now, before->right =temp_node;

else if (x < before->data) delete now, before->left = temp_node; }}

templatetree_node* btree::tree_find(t x)//find函式;

return node;//這裡如果root為空指標,也會返回null;

}templatetree_node* btree::tree_findmin(tree_node*p)

templatetree_node* btree::tree_findmax(tree_node*p)

templatetree_node* btree::tree_findfront(tree_node*p)//找到指定元素的前乙個元素;

return temp_node;

}template void btree::tree_del(t x, tree_node*p)

//沒有兒子的情況;

//但是,如果你一開始想要刪的節點就為最後乙個節點呢,它前面的節點的左右怎樣重新為null?

else if (p->right == null && p->left == null)

else//只含有乙個兒子的情況; }

templatevoid btree::tree_preorder(tree_node*p)

templatevoid btree::tree_inorder(tree_node*p)

templatevoid btree::tree_postorder(tree_node*p)

//測試部分......

int main()

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 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 ...

樹 二叉樹 二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 13輸出 true 示例 2 輸入 5 14 3 6輸出 false 解釋 輸入為 ...