📄 test_yc_tree.c
字号:
printf( "result is header!\n" );
break;
}
case 8:
{
int key = 0;
bbstree_iterator itr;
printf( "please input find int key:\n" );
scanf( "%d", &key );
itr = bbstree_lower_bound( &tree, &key );
if( bbstree_end(&tree) != itr )
{
printf( "address: %p\n", itr );
printf( "data: %d\n", *((int*)bbstree_itr_deref(itr)) );
}
else
printf( "result is header!\n" );
break;
}
case 9:
{
int key = 0;
bbstree_iterator itr;
printf( "please input find int key:\n" );
scanf( "%d", &key );
itr = bbstree_upper_bound( &tree, &key );
if( bbstree_end(&tree) != itr )
{
printf( "address: %p\n", itr );
printf( "data: %d\n", *((int*)bbstree_itr_deref(itr)) );
}
else
printf( "result is header!\n" );
break;
}
case 10:
{
int key = 0;
bbstree_pair_iterator pitr;
printf( "please input find int key:\n" );
scanf( "%d", &key );
pitr = bbstree_equal_range( &tree, &key );
if( bbstree_end(&tree) != pitr.first )
{
printf( "pitr.first address: %p\n", pitr.first );
printf( "pitr.first data: %d\n",
*((int*)bbstree_itr_deref(pitr.first)) );
}
else
printf( "pitr.first is header!\n" );
if( bbstree_end(&tree) != pitr.second )
{
printf( "pitr.last address: %p\n", pitr.second );
printf( "pitr.last data: %d\n",
*((int*)bbstree_itr_deref(pitr.second)) );
}
else
printf( "pitr.last is header!\n" );
break;
}
case 11:
{
int key = 0;
printf( "please input erase int key:\n" );
scanf( "%d", &key );
bbstree_erase_pos( &tree, bbstree_find(&tree, &key) );
break;
}
case 12:
{
int key1 = 0, key2 = 0;
printf( "please input erase first int key:\n" );
scanf( "%d", &key1 );
printf( "please input erase last int key:\n" );
scanf( "%d", &key2 );
bbstree_erase_range( &tree, bbstree_find(&tree, &key1),
bbstree_find(&tree, &key2) );
break;
}
case 13:
{
int key = 0;
printf( "please input erase int key:\n" );
scanf( "%d", &key );
printf( "erase key count: %u\n",
bbstree_erase_key( &tree, &key ) );
break;
}
case 14:
{
int key = 0;
printf( "please input insert int key:\n" );
scanf( "%d", &key );
printf( "address: %p\n",
bbstree_insert_unique_value( &tree, &key ) );
break;
}
case 15:
{
int key1, key2 = 0;
printf( "please input find int key:\n" );
scanf( "%d", &key1 );
printf( "please input insert int key:\n" );
scanf( "%d", &key2 );
printf( "address: %p\n",
bbstree_insert_unique_pos( &tree,
bbstree_find(&tree, &key1), &key2 ) );
break;
}
case 16:
{
int key = 0;
printf( "please input insert int key:\n" );
scanf( "%d", &key );
printf( "address: %p\n",
bbstree_insert_equal_value( &tree, &key ) );
break;
}
case 17:
{
int key1, key2 = 0;
printf( "please input find int key:\n" );
scanf( "%d", &key1 );
printf( "please input insert int key:\n" );
scanf( "%d", &key2 );
printf( "address: %p\n",
bbstree_insert_equal_pos( &tree,
bbstree_find(&tree, &key1), &key2 ) );
break;
}
case 18:
{
int key1, key2 = 0;
bbstree_iterator itr;
printf( "please input old int key:\n" );
scanf( "%d", &key1 );
printf( "please input new int key:\n" );
scanf( "%d", &key2 );
itr = bbstree_find( &tree, &key1 );
if( true == bbstree_replace_key_unique_pos( &tree, itr,
&key2, NULL ) )
printf( "new key: %d\n", *((int*)bbstree_itr_deref(itr)) );
else
printf( "replace error!\n" );
break;
}
case 19:
{
int key1, key2 = 0;
bbstree_iterator itr;
printf( "please input old int key:\n" );
scanf( "%d", &key1 );
printf( "please input new int key:\n" );
scanf( "%d", &key2 );
itr = bbstree_replace_key_unique( &tree, &key1, &key2, NULL );
if( bbstree_end(&tree) != itr )
printf( "new key: %d\n", *((int*)bbstree_itr_deref(itr)) );
else
printf( "replace error!\n" );
break;
}
case 20:
{
int key1, key2 = 0;
printf( "please input old int key:\n" );
scanf( "%d", &key1 );
printf( "please input new int key:\n" );
scanf( "%d", &key2 );
bbstree_replace_key_equal_pos( &tree,
bbstree_find(&tree, &key1), &key2, NULL );
break;
}
case 21:
{
int key1, key2 = 0;
printf( "please input old int key:\n" );
scanf( "%d", &key1 );
printf( "please input new int key:\n" );
scanf( "%d", &key2 );
bbstree_replace_key_equal( &tree, &key1, &key2, NULL );
break;
}
case 22:
{
printf( "max size of bbstree: %u\n", bbstree_max_size() );
break;
}
case 23:
{
printf( "bbstree size: %u\n", bbstree_size(&tree) );
break;
}
case 24:
{
printf( "address of begin: %p\n", bbstree_begin(&tree) );
break;
}
case 25:
{
printf( "address of end: %p\n", bbstree_end(&tree) );
break;
}
case 26:
{
print_verify( &tree );
break;
}
case 27:
{
int c = 0;
printf( "chkarray(y/n)\n" );
getchar();
c = getchar();
if( 'y' == c )
print_bread_tree( &tree );
else
bbstree_foreach( &tree, print_node );
printf( "\n" );
break;
}
case 28:
{
int c = 0;
printf( "reverse sequence(y/n)\n" );
getchar();
c = getchar();
if( 'y' == c )
print_tree( &tree, false );
else
print_tree( &tree, true );
break;
}
default:
break;
}
printf( "\npress any key to continue\n" );
/* pool_print();*/
getchar();
getchar();
}
EXIT:
printf( "destroy tree:\n" );
bbstree_destroy( &tree );
printf( "\n\n\n" );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -