mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +08:00
将原来的测试程序,修改成示例供参考
This commit is contained in:
parent
9d81e3e62d
commit
8403eb69be
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -17,6 +17,7 @@
|
||||
"limits": "c",
|
||||
"*.tcc": "c",
|
||||
"cstdlib": "c",
|
||||
"string.h": "c"
|
||||
"string.h": "c",
|
||||
"demo.h": "c"
|
||||
}
|
||||
}
|
@ -3,17 +3,14 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
|
||||
# 0. 项目信息
|
||||
project(demo)
|
||||
|
||||
# 0. 查找当前目录下的所有文件,并将名称保存在DIR_SRC中
|
||||
# aux_source_directory(. DIR_SRC)
|
||||
project(demo VERSION 0.0.01)
|
||||
|
||||
# 1. 添加头文件路径
|
||||
include_directories(include)
|
||||
|
||||
# 1. 添加子目录
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
||||
add_subdirectory(demo)
|
||||
|
||||
# 2. 支持GDB
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
|
@ -27,3 +27,9 @@
|
||||
| tree_rb_init | 二叉搜索树 | 红黑树 |
|
||||
| **heap** | |**堆** |
|
||||
| heap_init2 | 数组 | 最大堆/最小堆 |
|
||||
|
||||
|
||||
## 版本
|
||||
| 版本 | 说明 |
|
||||
|:----:|:----:|
|
||||
| 0.xx.xx | 测试版本 |
|
||||
|
21
demo/CMakelists.txt
Normal file
21
demo/CMakelists.txt
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
# set the name of project
|
||||
project(demo)
|
||||
|
||||
# include
|
||||
include_directories(.)
|
||||
|
||||
# add src
|
||||
aux_source_directory(. SRCS)
|
||||
|
||||
# generate target
|
||||
add_executable(${PROJECT_NAME} ${SRCS})
|
||||
|
||||
# link libary
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
unicstl
|
||||
)
|
||||
|
||||
# install
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
@ -1,5 +1,14 @@
|
||||
|
||||
#include "test.h"
|
||||
/**
|
||||
* @file demo.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "demo.h"
|
||||
|
||||
void print_num(void* obj)
|
||||
{
|
||||
@ -46,15 +55,15 @@ void print_str(void* obj)
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("----- unicstl test -----\n");
|
||||
printf("----- unicstl demo -----\n");
|
||||
// while (1)
|
||||
{
|
||||
// test_list();
|
||||
// test_stack();
|
||||
// test_deque();
|
||||
// test_queue();
|
||||
// test_tree();
|
||||
test_heap();
|
||||
{
|
||||
// demo_list();
|
||||
// demo_stack();
|
||||
// demo_deque();
|
||||
// demo_queue();
|
||||
// demo_tree();
|
||||
demo_heap();
|
||||
}
|
||||
|
||||
printf("----- unicstl ok -----\n");
|
50
demo/demo.h
Normal file
50
demo/demo.h
Normal file
@ -0,0 +1,50 @@
|
||||
/**
|
||||
* @file demo.h
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#ifndef _DEMO_H_
|
||||
#define _DEMO_H_
|
||||
|
||||
#define _CRT_SECURE_NO_WARNINGS 1 // for vs2022
|
||||
|
||||
#include "unicstl.h"
|
||||
|
||||
/**
|
||||
* @brief demo objects
|
||||
*
|
||||
*/
|
||||
struct _student
|
||||
{
|
||||
char name[16];
|
||||
int id;
|
||||
};
|
||||
|
||||
void print_num(void* obj);
|
||||
int compare_num(void *obj, void *obj2);
|
||||
|
||||
void print_struct(void* obj);
|
||||
int compare_struct(void *obj, void *obj2);
|
||||
|
||||
void print_char(void* obj);
|
||||
void print_str(void* obj);
|
||||
|
||||
|
||||
/**
|
||||
* @brief test function
|
||||
*
|
||||
*/
|
||||
void demo_list(void);
|
||||
void demo_stack(void);
|
||||
void demo_deque(void);
|
||||
void demo_queue(void);
|
||||
void demo_tree(void);
|
||||
void demo_heap(void);
|
||||
|
||||
#endif // _DEMO_H_
|
||||
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @file test_deque.c
|
||||
* @file demo_deque.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
@ -8,9 +8,9 @@
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "test.h"
|
||||
#include "demo.h"
|
||||
|
||||
static void test_deque_num(void)
|
||||
static void demo_deque_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
@ -21,7 +21,7 @@ static void test_deque_num(void)
|
||||
deque_init(&dq, sizeof(int));
|
||||
dq.print_obj = print_num;
|
||||
|
||||
printf("\n\n----- test_deque_num -----\n");
|
||||
printf("\n\n----- demo_deque_num -----\n");
|
||||
|
||||
printf("----- after push_back -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -178,7 +178,7 @@ static void test_deque_num(void)
|
||||
dq.destory(&dq);
|
||||
}
|
||||
|
||||
static void test_deque_struct(void)
|
||||
static void demo_deque_struct(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
struct _student data[] = {
|
||||
@ -193,7 +193,7 @@ static void test_deque_struct(void)
|
||||
deque_init(&dq, sizeof(struct _student));
|
||||
dq.print_obj = print_struct;
|
||||
|
||||
printf("\n\n----- test_deque_struct -----\n");
|
||||
printf("\n\n----- demo_deque_struct -----\n");
|
||||
|
||||
printf("----- after push_back -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -352,8 +352,8 @@ static void test_deque_struct(void)
|
||||
dq.destory(&dq);
|
||||
}
|
||||
|
||||
void test_deque(void)
|
||||
void demo_deque(void)
|
||||
{
|
||||
test_deque_num();
|
||||
test_deque_struct();
|
||||
demo_deque_num();
|
||||
demo_deque_struct();
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* @file test_heap.c
|
||||
* @file demo_heap.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
@ -8,9 +8,9 @@
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "test.h"
|
||||
#include "demo.h"
|
||||
|
||||
void test_heap_num(void)
|
||||
void demo_heap_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
// int data[] = { 2,1,3,4};
|
||||
@ -29,7 +29,7 @@ void test_heap_num(void)
|
||||
// maxheap or minheap
|
||||
heap->setmin(heap, true);
|
||||
|
||||
printf("\n\n----- test_heap_num -----\n");
|
||||
printf("\n\n----- demo_heap_num -----\n");
|
||||
|
||||
printf("----- push -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -81,7 +81,7 @@ void test_heap_num(void)
|
||||
heap_free(heap);
|
||||
}
|
||||
|
||||
static void test_heap_struct(void)
|
||||
static void demo_heap_struct(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
struct _student data[] = {
|
||||
@ -96,7 +96,7 @@ static void test_heap_struct(void)
|
||||
heap->print_obj = print_struct;
|
||||
heap->compare = compare_struct;
|
||||
|
||||
printf("\n\n----- test_heap_num -----\n");
|
||||
printf("\n\n----- demo_heap_num -----\n");
|
||||
printf("----- push -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
@ -147,8 +147,8 @@ static void test_heap_struct(void)
|
||||
heap_free(heap);
|
||||
}
|
||||
|
||||
void test_heap(void)
|
||||
void demo_heap(void)
|
||||
{
|
||||
test_heap_num();
|
||||
test_heap_struct();
|
||||
demo_heap_num();
|
||||
demo_heap_struct();
|
||||
}
|
@ -1,7 +1,16 @@
|
||||
/**
|
||||
* @file demo_list.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "demo.h"
|
||||
|
||||
#include "test.h"
|
||||
|
||||
static void test_list_num(void)
|
||||
static void demo_list_num(void)
|
||||
{
|
||||
int i = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
@ -13,7 +22,7 @@ static void test_list_num(void)
|
||||
list_init2(&list, sizeof(int), 64);
|
||||
list.print_obj = print_num;
|
||||
|
||||
printf("\n\n----- list_test_num -----\n");
|
||||
printf("\n\n----- list_demo_num -----\n");
|
||||
printf("----- push -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
@ -133,7 +142,7 @@ static void test_list_num(void)
|
||||
list.destory(&list);
|
||||
}
|
||||
|
||||
static void test_list_struct(void)
|
||||
static void demo_list_struct(void)
|
||||
{
|
||||
int i = 0;
|
||||
struct _student data[] = {
|
||||
@ -149,7 +158,7 @@ static void test_list_struct(void)
|
||||
list_init2(&list, sizeof(struct _student), 64);
|
||||
list.print_obj = print_struct;
|
||||
|
||||
printf("\n\n----- list_test_num -----\n");
|
||||
printf("\n\n----- list_demo_num -----\n");
|
||||
printf("----- push -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
@ -291,8 +300,8 @@ static void test_list_struct(void)
|
||||
list.destory(&list);
|
||||
}
|
||||
|
||||
void test_list(void)
|
||||
void demo_list(void)
|
||||
{
|
||||
test_list_num();
|
||||
test_list_struct();
|
||||
demo_list_num();
|
||||
demo_list_struct();
|
||||
}
|
@ -1,7 +1,16 @@
|
||||
/**
|
||||
* @file demo_queue.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "demo.h"
|
||||
|
||||
#include "test.h"
|
||||
|
||||
static void test_queue_num(void)
|
||||
static void demo_queue_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
@ -12,7 +21,7 @@ static void test_queue_num(void)
|
||||
queue_init(&queue, sizeof(int));
|
||||
queue.print_obj = print_num;
|
||||
|
||||
printf("\n\n----- test_queue_num -----\n");
|
||||
printf("\n\n----- demo_queue_num -----\n");
|
||||
|
||||
printf("----- after push-----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -86,7 +95,7 @@ static void test_queue_num(void)
|
||||
}
|
||||
|
||||
|
||||
static void test_queue_char(void)
|
||||
static void demo_queue_char(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
char data[] = "abcdefghijk";
|
||||
@ -98,7 +107,7 @@ static void test_queue_char(void)
|
||||
queue_init2(&queue, sizeof(char), 10);
|
||||
queue.print_obj = print_char;
|
||||
|
||||
printf("\n\n----- test_queue_char -----\n");
|
||||
printf("\n\n----- demo_queue_char -----\n");
|
||||
|
||||
printf("----- after push-----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -197,7 +206,7 @@ static void test_queue_char(void)
|
||||
queue.destory(&queue);
|
||||
}
|
||||
|
||||
static void test_queue_struct(void)
|
||||
static void demo_queue_struct(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
struct _student data[] = {
|
||||
@ -211,7 +220,7 @@ static void test_queue_struct(void)
|
||||
queue_init(queue, sizeof(struct _student));
|
||||
queue->print_obj = print_struct;
|
||||
|
||||
printf("\n\n----- test_queue_struct -----\n");
|
||||
printf("\n\n----- demo_queue_struct -----\n");
|
||||
|
||||
printf("----- after push-----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -287,9 +296,9 @@ static void test_queue_struct(void)
|
||||
}
|
||||
|
||||
|
||||
void test_queue(void)
|
||||
void demo_queue(void)
|
||||
{
|
||||
test_queue_num();
|
||||
test_queue_char();
|
||||
test_queue_struct();
|
||||
demo_queue_num();
|
||||
demo_queue_char();
|
||||
demo_queue_struct();
|
||||
}
|
@ -1,7 +1,16 @@
|
||||
/**
|
||||
* @file demo_stack.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "demo.h"
|
||||
|
||||
#include "test.h"
|
||||
|
||||
static void test_stack_num(void)
|
||||
static void demo_stack_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
@ -12,7 +21,7 @@ static void test_stack_num(void)
|
||||
stack_init(&s, sizeof(int));
|
||||
s.print_obj = print_num;
|
||||
|
||||
printf("\n\n----- test_stack_num -----\n");
|
||||
printf("\n\n----- demo_stack_num -----\n");
|
||||
// get top if stack is empty
|
||||
s.peek(&s, &temp);
|
||||
|
||||
@ -62,7 +71,7 @@ static void test_stack_num(void)
|
||||
s.destory(&s);
|
||||
}
|
||||
|
||||
static void test_stack_char(void)
|
||||
static void demo_stack_char(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
char data[] = "abcdefghijk";
|
||||
@ -73,7 +82,7 @@ static void test_stack_char(void)
|
||||
stack_init2(&s, sizeof(char), 64);
|
||||
s.print_obj = print_char;
|
||||
|
||||
printf("\n\n----- test_stack_char -----\n");
|
||||
printf("\n\n----- demo_stack_char -----\n");
|
||||
// get top if stack is empty
|
||||
s.peek(&s, &temp);
|
||||
|
||||
@ -122,7 +131,7 @@ static void test_stack_char(void)
|
||||
s.destory(&s);
|
||||
}
|
||||
|
||||
static void test_stack_struct(void)
|
||||
static void demo_stack_struct(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
struct _student data[] = {
|
||||
@ -137,7 +146,7 @@ static void test_stack_struct(void)
|
||||
stack_init(stack, sizeof(struct _student));
|
||||
stack->print_obj = print_struct;
|
||||
|
||||
printf("\n\n----- test_stack_struct -----\n");
|
||||
printf("\n\n----- demo_stack_struct -----\n");
|
||||
// get top if stack is empty
|
||||
stack->peek(stack, &temp);
|
||||
|
||||
@ -199,9 +208,9 @@ static void test_stack_struct(void)
|
||||
stack_free(stack);
|
||||
}
|
||||
|
||||
void test_stack(void)
|
||||
void demo_stack(void)
|
||||
{
|
||||
test_stack_num();
|
||||
test_stack_char();
|
||||
test_stack_struct();
|
||||
demo_stack_num();
|
||||
demo_stack_char();
|
||||
demo_stack_struct();
|
||||
}
|
@ -1,6 +1,16 @@
|
||||
/**
|
||||
* @file demo_tree.c
|
||||
* @author wenjf (Orig5826@163.com)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2024-08-27
|
||||
*
|
||||
* @copyright Copyright (c) 2024
|
||||
*
|
||||
*/
|
||||
#include "demo.h"
|
||||
|
||||
#include "test.h"
|
||||
|
||||
// vs2022 ±àÒë³åÍ»
|
||||
#ifdef max
|
||||
#undef max
|
||||
#endif
|
||||
@ -18,7 +28,7 @@
|
||||
* | | | |
|
||||
* 1 3 6 8
|
||||
*/
|
||||
void test_avltree_num(void)
|
||||
void demo_avltree_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
// int data[] = { 2,1,3,4};
|
||||
@ -33,7 +43,7 @@ void test_avltree_num(void)
|
||||
tree->print_obj = print_num;
|
||||
tree->compare = compare_num;
|
||||
|
||||
printf("\n\n----- test_avltree_num -----\n");
|
||||
printf("\n\n----- demo_avltree_num -----\n");
|
||||
|
||||
printf("----- insert -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -190,7 +200,7 @@ static bool tree_rb_check(struct _tree* self)
|
||||
/**
|
||||
* @brief
|
||||
*/
|
||||
void test_rbtree_num(void)
|
||||
void demo_rbtree_num(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
// int data[] = { 2,1,3,4};
|
||||
@ -205,7 +215,7 @@ void test_rbtree_num(void)
|
||||
tree->print_obj = print_num;
|
||||
tree->compare = compare_num;
|
||||
|
||||
printf("\n\n----- test_rbtree_num -----\n");
|
||||
printf("\n\n----- demo_rbtree_num -----\n");
|
||||
|
||||
printf("----- insert -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -322,7 +332,7 @@ void test_rbtree_num(void)
|
||||
/**
|
||||
* @brief
|
||||
*/
|
||||
void test_rbtree_struct(void)
|
||||
void demo_rbtree_struct(void)
|
||||
{
|
||||
uint32_t i = 0;
|
||||
struct _student data[] = {
|
||||
@ -337,7 +347,7 @@ void test_rbtree_struct(void)
|
||||
tree->print_obj = print_struct;
|
||||
tree->compare = compare_struct;
|
||||
|
||||
printf("\n\n----- test_rbtree_struct -----\n");
|
||||
printf("\n\n----- demo_rbtree_struct -----\n");
|
||||
|
||||
printf("----- insert -----\n");
|
||||
for (i = 0; i < len; i++)
|
||||
@ -451,9 +461,9 @@ void test_rbtree_struct(void)
|
||||
tree_free(tree);
|
||||
}
|
||||
|
||||
void test_tree(void)
|
||||
void demo_tree(void)
|
||||
{
|
||||
test_avltree_num();
|
||||
test_rbtree_num();
|
||||
test_rbtree_struct();
|
||||
demo_avltree_num();
|
||||
demo_rbtree_num();
|
||||
demo_rbtree_struct();
|
||||
}
|
@ -1,4 +0,0 @@
|
||||
|
||||
aux_source_directory(. SRC_DEMO)
|
||||
|
||||
add_library(example STATIC ${SRC_DEMO})
|
@ -1,6 +0,0 @@
|
||||
|
||||
#ifndef _DEMO_H_
|
||||
#define _DEMO_H_
|
||||
|
||||
|
||||
#endif
|
@ -1,7 +1,12 @@
|
||||
|
||||
aux_source_directory(. LIB_SRC)
|
||||
# set the name of project
|
||||
project(unicstl)
|
||||
|
||||
add_library(unicstl STATIC ${LIB_SRC})
|
||||
# add src
|
||||
aux_source_directory(. SRCS)
|
||||
|
||||
# generate library
|
||||
add_library(${PROJECT_NAME} STATIC ${SRCS})
|
||||
|
||||
# install
|
||||
install(TARGETS unicstl DESTINATION lib)
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION lib)
|
||||
|
@ -1,17 +1,21 @@
|
||||
|
||||
project(test)
|
||||
# set the name of project
|
||||
project(demo)
|
||||
|
||||
# include
|
||||
include_directories(.)
|
||||
|
||||
# add src
|
||||
aux_source_directory(. DIR_TEST)
|
||||
aux_source_directory(. SRCS)
|
||||
|
||||
# generate target
|
||||
add_executable(${PROJECT_NAME} ${DIR_TEST})
|
||||
add_executable(${PROJECT_NAME} ${SRCS})
|
||||
|
||||
# link libary
|
||||
target_link_libraries(${PROJECT_NAME} unicstl)
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
unicstl
|
||||
)
|
||||
|
||||
# install
|
||||
set(CMAKE_INSTALL_PREFIX "./release")
|
||||
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
|
||||
|
41
test/test.h
41
test/test.h
@ -1,41 +0,0 @@
|
||||
|
||||
#ifndef _TEST_H_
|
||||
#define _TEST_H_
|
||||
|
||||
#define _CRT_SECURE_NO_WARNINGS 1 // for vs2022
|
||||
|
||||
#include "unicstl.h"
|
||||
|
||||
/**
|
||||
* @brief test objects
|
||||
*
|
||||
*/
|
||||
struct _student
|
||||
{
|
||||
char name[16];
|
||||
int id;
|
||||
};
|
||||
|
||||
void print_num(void* obj);
|
||||
int compare_num(void *obj, void *obj2);
|
||||
|
||||
void print_struct(void* obj);
|
||||
int compare_struct(void *obj, void *obj2);
|
||||
|
||||
void print_char(void* obj);
|
||||
void print_str(void* obj);
|
||||
|
||||
|
||||
/**
|
||||
* @brief test function
|
||||
*
|
||||
*/
|
||||
void test_list(void);
|
||||
void test_stack(void);
|
||||
void test_deque(void);
|
||||
void test_queue(void);
|
||||
void test_tree(void);
|
||||
void test_heap(void);
|
||||
|
||||
#endif // _TEST_H_
|
||||
|
Loading…
Reference in New Issue
Block a user