mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 11:31:37 +08:00
暂时用不到的函数就先屏蔽了
This commit is contained in:
parent
ecc568bb90
commit
08ba5296be
@ -3,7 +3,7 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
|
||||
# 0. 项目信息
|
||||
project(demo VERSION 0.0.01)
|
||||
project(demo VERSION 0.0.02)
|
||||
|
||||
# 2. 支持GDB
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
|
@ -63,8 +63,8 @@ struct _deque
|
||||
bool (*set)(struct _deque* self, int index, void* obj);
|
||||
|
||||
// compare
|
||||
int (*cmp)(void* obj, void* obj2);
|
||||
bool (*sort)(struct _deque* self, uint8_t reserve);
|
||||
// int (*compare)(void* obj, void* obj2);
|
||||
// bool (*sort)(struct _deque* self, uint8_t reserve);
|
||||
|
||||
// -------------------- debug --------------------
|
||||
void (*print)(struct _deque* self);
|
||||
|
@ -49,10 +49,7 @@ struct _heap
|
||||
iterator_t (*iter)(struct _heap* self);
|
||||
|
||||
// config
|
||||
// !!! you have to implement this function
|
||||
compare_fun_t compare;
|
||||
// register function
|
||||
// void (*register_compare)(struct _heap* self, compare_fun_t cmp_fun);
|
||||
compare_fun_t compare; // !!! you have to implement this function
|
||||
|
||||
// -------------------- debug --------------------
|
||||
void (*print)(struct _heap* self);
|
||||
|
@ -16,6 +16,7 @@
|
||||
|
||||
struct _list
|
||||
{
|
||||
// -------------------- private --------------------
|
||||
void * obj;
|
||||
|
||||
uint32_t _obj_size;
|
||||
@ -26,6 +27,9 @@ struct _list
|
||||
|
||||
struct _iterator _iter;
|
||||
|
||||
void (*_destory)(struct _list* self);
|
||||
|
||||
// -------------------- public --------------------
|
||||
// kernel
|
||||
bool (*append)(struct _list* self, void* obj); // Append object to the end of the list.
|
||||
bool (*insert)(struct _list* self, int index, void* obj); // Insert object before index.
|
||||
@ -37,30 +41,25 @@ struct _list
|
||||
bool (*get)(struct _list* self, int index, void* obj);
|
||||
bool (*set)(struct _list* self, int index, void* obj);
|
||||
|
||||
// iter
|
||||
iterator_t (*iter)(struct _list* self);
|
||||
|
||||
// base
|
||||
uint32_t(*size)(struct _list* self);
|
||||
bool (*empty)(struct _list* self);
|
||||
|
||||
// clear and free node
|
||||
bool (*clear)(struct _list* self);
|
||||
void (*destory)(struct _list* self);
|
||||
|
||||
// iter
|
||||
iterator_t (*iter)(struct _list* self);
|
||||
|
||||
// sort
|
||||
bool (*reverse)(struct _list* self); // Reverse *IN PLACE*.
|
||||
|
||||
// bool (*reverse)(struct _list* self); // Reverse *IN PLACE*.
|
||||
/**
|
||||
Sort the list in ascending order and return false.
|
||||
The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
|
||||
order of two equal elements is maintained).
|
||||
The reverse flag can be set to sort in descending order.
|
||||
*/
|
||||
bool (*sort)(struct _list* self, uint8_t reserve, int (*compare)(void* obj, void* obj2));
|
||||
// bool (*sort)(struct _list* self, uint8_t reserve, int (*compare)(void* obj, void* obj2));
|
||||
|
||||
// print
|
||||
// -------------------- debug --------------------
|
||||
void (*print)(struct _list* self);
|
||||
void (*print_obj)(void* obj);
|
||||
};
|
||||
|
@ -71,7 +71,7 @@ struct _tree
|
||||
|
||||
struct _iterator _iter;
|
||||
|
||||
void (*destory)(struct _tree* self);
|
||||
void (*_destory)(struct _tree* self);
|
||||
|
||||
// -------------------- public --------------------
|
||||
// kernel
|
||||
@ -107,4 +107,3 @@ tree_t tree_rb_new(uint32_t obj_size);
|
||||
void tree_free(tree_t* tree);
|
||||
|
||||
#endif // _TREE_H_
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
#define UNICSTL_VERSION_MAJOR 0
|
||||
#define UNICSTL_VERSION_MINOR 0
|
||||
#define UNICSTL_VERSION_MICRO 1
|
||||
#define UNICSTL_VERSION_MICRO 2
|
||||
#define UNICSTL_VERSION ((UNICSTL_VERSION_MAJOR << 16) | (UNICSTL_VERSION_MINOR << 8) | UNICSTL_VERSION_MICRO)
|
||||
|
||||
#include "common.h"
|
||||
|
63
src/list.c
63
src/list.c
@ -215,42 +215,51 @@ static bool list_init2(struct _list* list, uint32_t obj_size, uint32_t capacity)
|
||||
return false;
|
||||
}
|
||||
|
||||
// 1. set attr
|
||||
// -------------------- private --------------------
|
||||
list->_obj_size = obj_size;
|
||||
list->_size = 0;
|
||||
list->_capacity = capacity;
|
||||
list->_ratio = 2;
|
||||
list->_cur = 0;
|
||||
|
||||
// 2. set function
|
||||
// kernel
|
||||
list->append = list_append;
|
||||
list->get = list_get;
|
||||
list->clear = list_clear;
|
||||
list->destory = list_destory;
|
||||
list->empty = list_empty;
|
||||
list->index = list_index;
|
||||
list->insert = list_insert;
|
||||
list->pop = list_pop;
|
||||
list->print = list_print;
|
||||
list->remove = list_remove;
|
||||
list->reverse = list_reverse;
|
||||
list->set = list_set;
|
||||
list->size = list_size;
|
||||
list->sort = list_sort;
|
||||
|
||||
// iterator
|
||||
list->iter = list_iter;
|
||||
list->_iter.next = list_iter_next;
|
||||
list->_iter.hasnext = list_iter_hasnext;
|
||||
|
||||
// 3. set array
|
||||
// list->obj = (void*)calloc(list->_capacity, list->_obj_size);
|
||||
list->obj = (void*)malloc(list->_capacity * list->_obj_size);
|
||||
if (list->obj == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
list->_iter.next = list_iter_next;
|
||||
list->_iter.hasnext = list_iter_hasnext;
|
||||
|
||||
list->_destory = list_destory;
|
||||
|
||||
// -------------------- public --------------------
|
||||
// kernel
|
||||
list->append = list_append;
|
||||
list->insert = list_insert;
|
||||
list->pop = list_pop;
|
||||
|
||||
list->empty = list_empty;
|
||||
|
||||
// base
|
||||
list->clear = list_clear;
|
||||
list->size = list_size;
|
||||
|
||||
// iter
|
||||
list->iter = list_iter;
|
||||
|
||||
// others
|
||||
list->index = list_index;
|
||||
list->remove = list_remove;
|
||||
list->get = list_get;
|
||||
list->set = list_set;
|
||||
|
||||
// list->reverse = list_reverse;
|
||||
// list->sort = list_sort;
|
||||
|
||||
// -------------------- debug --------------------
|
||||
list->print = list_print;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -276,9 +285,9 @@ void list_free(list_t* list)
|
||||
assert(list != NULL);
|
||||
if(list != NULL && *list != NULL)
|
||||
{
|
||||
if((*list)->destory != NULL)
|
||||
if((*list)->_destory != NULL)
|
||||
{
|
||||
(*list)->destory(*list);
|
||||
(*list)->_destory(*list);
|
||||
}
|
||||
free(*list);
|
||||
*list = NULL;
|
||||
|
@ -1463,7 +1463,7 @@ static bool tree_avl_init(struct _tree* self, uint32_t obj_size)
|
||||
self->_iter.hasnext = tree_iter_hasnext;
|
||||
self->_iter.next = tree_iter_next;
|
||||
|
||||
self->destory = tree_destory;
|
||||
self->_destory = tree_destory;
|
||||
|
||||
// -------------------- public --------------------
|
||||
// kernel
|
||||
@ -1517,7 +1517,7 @@ static bool tree_rb_init(struct _tree* self, uint32_t obj_size)
|
||||
self->_iter.hasnext = tree_iter_hasnext;
|
||||
self->_iter.next = tree_iter_next;
|
||||
|
||||
self->destory = tree_destory;
|
||||
self->_destory = tree_destory;
|
||||
|
||||
// -------------------- public --------------------
|
||||
// kernel
|
||||
@ -1579,7 +1579,7 @@ void tree_free(tree_t* tree)
|
||||
{
|
||||
if (*tree != NULL)
|
||||
{
|
||||
(*tree)->destory(*tree);
|
||||
(*tree)->_destory(*tree);
|
||||
free(*tree);
|
||||
}
|
||||
*tree = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user