int main()
{
	{
		BinarySearchTree<int> t;
		t.insert(8);t.insert(3);t.insert(10);t.insert(1);
		t.remove(1);t.remove(3);
		t.insert(6);t.insert(14);t.insert(4);t.insert(7);t.insert(13);

        assert( t.find(13)->val == 13);
        assert( t.findMax()->val == 14);
        assert( t.findMin()->val == 4);

		t.traverse(printNode);
	}

	{
		BinarySearchTree<int> t;
		t.insert(8);t.insert(3);t.insert(10);t.insert(1);
		t.insert(6);t.insert(14);t.insert(4);t.insert(7);t.insert(13);

		t.traverse(printNode);
	}

	return 0;
}
    // Test program
int main( )
{
    BinarySearchTree<int> t;
    int NUMS = 400000;
    const int GAP  =   3711;
    int i;

    cout << "Checking... (no more output means success)" << endl;

    for( i = GAP; i != 0; i = ( i + GAP ) % NUMS )
        t.insert( i );

    for( i = 1; i < NUMS; i+= 2 )
        t.remove( i );

    if( NUMS < 40 )
        t.printTree( );
    if( t.findMin( ) != 2 || t.findMax( ) != NUMS - 2 )
        cout << "FindMin or FindMax error!" << endl;

    for( i = 2; i < NUMS; i+=2 )
        if( !t.contains( i ) )
            cout << "Find error1!" << endl;

    for( i = 1; i < NUMS; i+=2 )
    {
        if( t.contains( i ) )
            cout << "Find error2!" << endl;
    }

    BinarySearchTree<int> t2;
    t2 = t;

    for( i = 2; i < NUMS; i+=2 )
        if( !t2.contains( i ) )
            cout << "Find error1!" << endl;

    for( i = 1; i < NUMS; i+=2 )
    {
        if( t2.contains( i ) )
            cout << "Find error2!" << endl;
    }

    cout << "Finished testing" << endl;

    return 0;
}
Beispiel #3
0
int main() {
    int n, v;
    char cmd[32];

    while (scanf("%d", &n) != EOF) {
        BinarySearchTree bst;
        for (int i = 0; i < n; ++i) {
            scanf("%s", cmd);
            if (!strcmp(cmd, "find")) {
                scanf("%d", &v);
                TreeNode *ptr = bst.find(v);
                if (!ptr) {
                    puts("null");
                } else {
                    printf("%x : %d\n", (unsigned)ptr, ptr->v);
                }
            } else if (!strcmp(cmd, "findMin")) {
                TreeNode *mini = bst.findMin();
                if (!mini) {
                    puts("null");
                } else {
                    printf("%x : %d\n", (unsigned)mini, mini->v);
                }
            } else if (!strcmp(cmd, "findMax")) {
                TreeNode *maxi = bst.findMax();
                if (!maxi) {
                    puts("null");
                } else {
                    printf("%x : %d\n", (unsigned)maxi, maxi->v);
                }
            } else if (!strcmp(cmd, "insert")) {
                scanf("%d", &v);
                bst.insert(v);
            } else if (!strcmp(cmd, "remove")) {
                scanf("%d", &v);
                bst.remove(v);
            } else if (!strcmp(cmd, "show")) {
                bst.show();
            }
        }
    }
    return 0;
}
Beispiel #4
0
int main(int argc, char **argv)
{
    BinarySearchTree bst;
    bst.insert(12);
    bst.insert(34);
    bst.insert(9);
    bst.insert(54);
    bst.insert(134);
    bst.insert(4);
    bst.insert(19);
    bst.insert(5);


    bst.printTree();

    cout << "-------------------------" << endl;
    cout<< bst.findMin(bst.thisone())->element << endl;
    cout<< bst.findMax(bst.thisone())->element << endl;

	return 0;
}