mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-18 03:51:35 +08:00
deque修改接口函数
This commit is contained in:
parent
be306bfe5a
commit
a3c60c7d38
@ -17,8 +17,7 @@ static void demo_deque_num(void)
|
|||||||
int temp = 0;
|
int temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
deque_t deque = deque_new();
|
deque_t deque = deque_new(sizeof(int));
|
||||||
deque_init(deque, sizeof(int));
|
|
||||||
deque->print_obj = print_num;
|
deque->print_obj = print_num;
|
||||||
|
|
||||||
printf("\n\n----- demo_deque_num -----\n");
|
printf("\n\n----- demo_deque_num -----\n");
|
||||||
@ -189,8 +188,7 @@ static void demo_deque_struct(void)
|
|||||||
struct _student temp = {0};
|
struct _student temp = {0};
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
deque_t deque = deque_new();
|
deque_t deque = deque_new(sizeof(struct _student));
|
||||||
deque_init(deque, sizeof(struct _student));
|
|
||||||
deque->print_obj = print_struct;
|
deque->print_obj = print_struct;
|
||||||
|
|
||||||
printf("\n\n----- demo_deque_struct -----\n");
|
printf("\n\n----- demo_deque_struct -----\n");
|
||||||
|
@ -66,9 +66,9 @@ struct _deque
|
|||||||
};
|
};
|
||||||
typedef struct _deque* deque_t;
|
typedef struct _deque* deque_t;
|
||||||
|
|
||||||
bool deque_init(struct _deque* self, uint32_t obj_size);
|
// create and free deque
|
||||||
|
deque_t deque_new(uint32_t obj_size);
|
||||||
|
|
||||||
deque_t deque_new(void);
|
|
||||||
void deque_free(deque_t* deque);
|
void deque_free(deque_t* deque);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
50
src/deque.c
50
src/deque.c
@ -10,7 +10,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "deque.h"
|
#include "deque.h"
|
||||||
|
|
||||||
bool deque_push_back(struct _deque* self, void* obj)
|
static bool deque_push_back(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
struct _deque_node* front = NULL;
|
struct _deque_node* front = NULL;
|
||||||
@ -54,7 +54,7 @@ bool deque_push_back(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_push_front(struct _deque* self, void* obj)
|
static bool deque_push_front(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
struct _deque_node* front = NULL;
|
struct _deque_node* front = NULL;
|
||||||
@ -98,7 +98,7 @@ bool deque_push_front(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_pop_back(struct _deque* self, void* obj)
|
static bool deque_pop_back(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
struct _deque_node* node = NULL;
|
struct _deque_node* node = NULL;
|
||||||
@ -135,7 +135,7 @@ bool deque_pop_back(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_pop_front(struct _deque* self, void* obj)
|
static bool deque_pop_front(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
struct _deque_node* node = NULL;
|
struct _deque_node* node = NULL;
|
||||||
@ -172,7 +172,7 @@ bool deque_pop_front(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_back(struct _deque* self, void* obj)
|
static bool deque_back(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
assert(obj != NULL);
|
assert(obj != NULL);
|
||||||
@ -185,7 +185,7 @@ bool deque_back(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_front(struct _deque* self, void* obj)
|
static bool deque_front(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
assert(obj != NULL);
|
assert(obj != NULL);
|
||||||
@ -198,27 +198,27 @@ bool deque_front(struct _deque* self, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_insert(struct _deque* self, int index, void* obj)
|
static bool deque_insert(struct _deque* self, int index, void* obj)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_erase(struct _deque* self, int index, void* obj)
|
static bool deque_erase(struct _deque* self, int index, void* obj)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int deque_index(struct _deque* self, void* obj)
|
static int deque_index(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_remove(struct _deque* self, void* obj)
|
static bool deque_remove(struct _deque* self, void* obj)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_clear(struct _deque* self)
|
static bool deque_clear(struct _deque* self)
|
||||||
{
|
{
|
||||||
while (!self->empty(self))
|
while (!self->empty(self))
|
||||||
{
|
{
|
||||||
@ -227,7 +227,7 @@ bool deque_clear(struct _deque* self)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_get(struct _deque* self, int index, void* obj)
|
static bool deque_get(struct _deque* self, int index, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
assert(obj != NULL);
|
assert(obj != NULL);
|
||||||
@ -243,7 +243,7 @@ bool deque_get(struct _deque* self, int index, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_set(struct _deque* self, int index, void* obj)
|
static bool deque_set(struct _deque* self, int index, void* obj)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
assert(obj != NULL);
|
assert(obj != NULL);
|
||||||
@ -259,19 +259,19 @@ bool deque_set(struct _deque* self, int index, void* obj)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t deque_size(struct _deque* self)
|
static uint32_t deque_size(struct _deque* self)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
return self->_size;
|
return self->_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_empty(struct _deque* self)
|
static bool deque_empty(struct _deque* self)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
return !self->size(self);
|
return !self->size(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
void deque_destory(struct _deque* self)
|
static void deque_destory(struct _deque* self)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
self->clear(self);
|
self->clear(self);
|
||||||
@ -282,7 +282,7 @@ void deque_destory(struct _deque* self)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void deque_print(struct _deque* self)
|
static void deque_print(struct _deque* self)
|
||||||
{
|
{
|
||||||
assert(self != NULL);
|
assert(self != NULL);
|
||||||
|
|
||||||
@ -295,7 +295,7 @@ void deque_print(struct _deque* self)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool deque_init(struct _deque* self, uint32_t obj_size)
|
static bool deque_init(struct _deque* self, uint32_t obj_size)
|
||||||
{
|
{
|
||||||
// attribute
|
// attribute
|
||||||
self->_obj_size = obj_size;
|
self->_obj_size = obj_size;
|
||||||
@ -328,9 +328,19 @@ bool deque_init(struct _deque* self, uint32_t obj_size)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
deque_t deque_new(void)
|
deque_t deque_new(uint32_t obj_size)
|
||||||
{
|
{
|
||||||
return (struct _deque*)malloc(sizeof(struct _deque));
|
struct _deque* deque = NULL;
|
||||||
|
deque = (struct _deque*)malloc(sizeof(struct _deque));
|
||||||
|
if(deque != NULL)
|
||||||
|
{
|
||||||
|
if(deque_init(deque, obj_size) != true)
|
||||||
|
{
|
||||||
|
free(deque);
|
||||||
|
deque = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return deque;
|
||||||
}
|
}
|
||||||
|
|
||||||
void deque_free(deque_t *deque)
|
void deque_free(deque_t *deque)
|
||||||
|
@ -17,10 +17,8 @@ static void test_deque_num(void)
|
|||||||
int temp = 0;
|
int temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
deque_t deque = deque_new();
|
deque_t deque = deque_new(sizeof(int));
|
||||||
TEST_ASSERT_NOT_NULL(deque);
|
TEST_ASSERT_NOT_NULL(deque);
|
||||||
|
|
||||||
deque_init(deque, sizeof(int));
|
|
||||||
deque->print_obj = print_num;
|
deque->print_obj = print_num;
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
@ -148,10 +146,8 @@ static void test_deque_struct(void)
|
|||||||
struct _student temp = {0};
|
struct _student temp = {0};
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
deque_t deque = deque_new();
|
deque_t deque = deque_new(sizeof(struct _student));
|
||||||
TEST_ASSERT_NOT_NULL(deque);
|
TEST_ASSERT_NOT_NULL(deque);
|
||||||
|
|
||||||
deque_init(deque, sizeof(struct _student));
|
|
||||||
deque->print_obj = print_struct;
|
deque->print_obj = print_struct;
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
|
Loading…
Reference in New Issue
Block a user