二叉查詢樹的演算法實現

2021-06-08 01:22:30 字數 1929 閱讀 7618

二叉查詢樹主要包含以下演算法:search,insert,delete,max,min,successor和predecessor。下面的程式是在vc6.0下實現的。其中,關於insert和search提高了迭代和遞迴兩個版本,display使用了遞迴版本,其餘演算法都只提供了迭代版本。

#include

using namespace std;

template

class binarysorttree;

template

class node

friend binarysorttree;

private:

type data;

node *left;

node *right;

node *parent;

};template

class binarysorttree

node*searchiteration(type data)

return null;

}node*searchrecursion(int data)

node*predecessor(node*p)else

return q;

}node*successor(node*p)else

return q;

}node*min()

return null;

}node*max()

return null;

}void insertiteration(type data)

node*newnode = new node(data);

if (parent == null)

root = newnode;

else

}void insertrecursion(type data)

node*del(type data)

if (y != z)

z->data = y->data;

return y;

}void display()

private:

void displayonenode(node*root, int layer)

node*searchrecursion(node*root, type data)

void insertrecursion(node*parent, node*cur, node*newnode)

return;

}if (cur->data > newnode->data)

insertrecursion(cur, cur->left, newnode);

else

insertrecursion(cur, cur->right, newnode);

}private:

node*root;

};void main();

for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i ++)

binarytree.insertiteration(arr[i]);

cout << "**************" << endl;

binarytree.display();

int deldata = ;

for (i = 0; i < sizeof(deldata)/sizeof(deldata[0]); i ++)

}//test recursion algorithm

binarysorttreebinarytree2;

cout << "test insertrecursion" << endl;

for (i = 0; i < sizeof(arr)/sizeof(arr[0]); i ++)

binarytree2.insertrecursion(arr[i]);

binarytree2.display();}

演算法 二叉查詢樹

二叉查詢樹 binary search tree 也稱有序二叉樹 ordered binary tree 排序二叉樹 sorted binary tree 是指一棵空樹或者具有下列性質的二叉樹 1.若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2.若任意節點的右子樹不空,則右子...

二叉查詢樹演算法

判斷二插查詢樹是否含有 指定結點 param x return public boolean contains t x private boolean contains t x binarynode t int compareresult x.compareto t.element if compa...

二叉查詢樹,實現

public class binarytree 移除乙個節點 分三種情況,乙個是 該節點本身是葉子,乙個是 該節點含有乙個兒子節點 乙個是 該節點還有兩個兒子節點 param e param comareelement private binarynoderemove element e,binar...