資料結構之二叉查詢樹

2021-08-04 03:44:05 字數 1310 閱讀 9065

二叉樹成為二叉查詢樹的性質是,對於樹種的每個節點x,他的左子樹中的所有關鍵字的值均小於x的關鍵字的值,而他的右子樹中的所有關鍵字的值均大於x的關鍵字的值。這意味著,該樹的所有元素均可以是用某種統一的方式排序。

tree.h

#pragma once

//we define the binary tree.

struct treenode;

typedef struct treenode * tree;

struct treenode

;tree treecreat(int val);

tree treeinsert(tree tr, int val);

tree treedelete(tree tr, int val);

tree treefind(tree tr, int val);

tree treefindmax(tree tr);

tree treefindmin(tree tr);

tree.c

#include "stdafx.h"

#include "tree.h"

#include

#include

using namespace std;

tree treecreat(int val)

tree treeinsert(tree tr, int val)

else

if (val < tr->elem)

tr->left = treeinsert(tr->left, val);

else

if (val > tr->elem)

tr->right = treeinsert(tr->right, val);

return

tr;}

tree treedelete(tree tr, int val) //二叉樹種非常關鍵的乙個函式,

else

if (val < tr->elem)

else

if (val > tr->elem)

if (tr->left && tr->right) //如果tr又兩個孩子,

else

return

tr;}

tree treefind(tree tr, int val)

tree treefindmax(tree tr)

return

tr;}

tree treefindmin(tree tr)

return

tr;}

資料結構之二叉查詢樹

針對二叉查詢樹的操作 增刪改查 的時間和樹的高度成正比,比如都有10個節點的乙個樹,樹高為4和樹高為10的操作時間肯定是不同的,這個時間實際上是o lgn 二叉查詢樹的期望的樹高是lgn,從而基本動態集合的操作平均時間為 lgn 通常二叉查詢樹基於鍊錶實現,每個節點儲存左,右子節點,如果想更方便的實...

資料結構之二叉查詢樹

二叉查詢樹 binary search tree 又被稱為二叉搜尋樹。設x為二叉查詢樹中的乙個結點,x節點包含關鍵字key,節點x的key值記為 ke y x k ey x 如果y是x的左子樹中的乙個結點,則 ke y y ke y x k ey y ke y x 如果y是x的右子樹的乙個結點,則 ...

資料結構查詢演算法之二叉查詢樹

關於二叉查詢樹,介紹肯定是很多的,這裡我列舉的下面的 和思想,是按照二叉查詢樹,但是沒有使用二叉樹的資料結構,而是按照陣列索引建立邏輯上的二叉樹結構,並使用二叉樹的遞迴方式查詢給定的值,並在注釋中對不同的情況提出一點自己的看法,建立樹的過程參考堆排序的思想,並且在結構上大致相同,所以需要注意的地方也...