mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 15:56:52 +08:00
合并远程分支
This commit is contained in:
commit
6c7ce7f04e
@ -1,6 +1,6 @@
|
||||
|
||||
# 0. cmake 最低版本号要求
|
||||
cmake_minimum_required(VERSION 3.27)
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
|
||||
# 0. 项目信息
|
||||
project(demo)
|
||||
|
4
mk.bat
4
mk.bat
@ -1,8 +1,8 @@
|
||||
@REM D:\Lang\cmake-3.27.5-windows-x86_64\bin\cmake.EXE --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=D:\Software\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=D:\Software\mingw64\bin\g++.exe -SF:/OpenDemo/1_vsc_cmake -Bf:/OpenDemo/1_vsc_cmake/build -G "MinGW Makefiles"
|
||||
@REM cmake -Bbuild -G "Visual Studio 17 2022"
|
||||
|
||||
cmake -B build -G "MinGW Makefiles"
|
||||
@REM cmake -B build -G "Unix Makefiles"
|
||||
@REM cmake -B build -G "MinGW Makefiles"
|
||||
cmake -B build -G "Unix Makefiles"
|
||||
|
||||
make -C build
|
||||
make -C build install
|
||||
|
53
src/tree.c
53
src/tree.c
@ -2024,6 +2024,7 @@ void tree_avl_preorder(struct _tree* self, struct _tree_node* root)
|
||||
|
||||
void tree_avl_inorder(struct _tree* self, struct _tree_node* root)
|
||||
{
|
||||
#if 0
|
||||
assert(self != NULL);
|
||||
if(root == NULL)
|
||||
{
|
||||
@ -2039,7 +2040,7 @@ void tree_avl_inorder(struct _tree* self, struct _tree_node* root)
|
||||
self->print_obj(root->obj);
|
||||
if(root->right != NULL)
|
||||
{
|
||||
tree_avl_inorder(self, root->right);
|
||||
tree_avl_inorder(self, root->right);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2054,6 +2055,56 @@ void tree_avl_inorder(struct _tree* self, struct _tree_node* root)
|
||||
tree_avl_inorder(self, root->left);
|
||||
}
|
||||
}
|
||||
#else
|
||||
assert(self != NULL);
|
||||
if(root == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
struct _tree_node *node = root;
|
||||
|
||||
stack_t stack = stack_new();
|
||||
stack_init(stack, sizeof(struct _tree_node*));
|
||||
|
||||
if(!self->_right_priority)
|
||||
{
|
||||
while(node != NULL || !stack->empty(stack))
|
||||
{
|
||||
while(node != NULL)
|
||||
{
|
||||
stack->push(stack, &node);
|
||||
node = node->left;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
stack->pop(stack, &node);
|
||||
self->print_obj(node->obj);
|
||||
}while(node->right == NULL && !stack->empty(stack));
|
||||
node = node->right;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while(node != NULL || !stack->empty(stack))
|
||||
{
|
||||
while(node != NULL)
|
||||
{
|
||||
stack->push(stack, &node);
|
||||
node = node->right;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
stack->pop(stack, &node);
|
||||
self->print_obj(node->obj);
|
||||
}while(node->left == NULL && !stack->empty(stack));
|
||||
node = node->left;
|
||||
}
|
||||
}
|
||||
stack_free(stack);
|
||||
#endif
|
||||
}
|
||||
|
||||
void tree_avl_postorder(struct _tree* self, struct _tree_node* root)
|
||||
|
Loading…
Reference in New Issue
Block a user