data-structures
バイナリ検索ツリー
サーチ…
BSTでのノードの作成
バイナリ検索ツリー(BST)は、ルートノードへの単一のポインタを持つ階層的なデータ構造です。
BSTのノードには、一般的に、高速ルックアップのための「項目」(番号や名前など)が含まれています。各ノードには、最大で2つの子(左と右)があります。すべてのノードは、いくつかの重要なデータフィールドによって編成されています。 BSTのすべてのノードで、そのキーは左の子のキーよりも大きく、右の子のキーよりも小さい
ノードの典型的な構造(整数を格納する)は、
struct bst_node {
int item;
bst_node* left;
bst_node* right;
};
BSTのルートノードは1つだけです。ルートノードは、
bst_node* root = NULL;
root = (bst_node*) malloc(sizeof(bst_node));
ルートの項目キーを10に設定する。
root->item = 10;
二分探索木にノードを挿入する
struct tree{
int a;
tree* right;
tree* left;
};
tree* root=NULL;
void insert(tree*& in, int b){
if(in){
if(in->a<b)
insert(in->right,b);
else if(in->a>b)
insert(in->left,b);
else
cout<<"the value is already in the tree."<<endl;
}else{
tree* temp = new tree;
temp->a=b;
temp->right=NULL;
temp->left=NULL;
in=temp;
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow