mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-07-03 15:56:52 +08:00
demo代码全部修改成new的统一接口,考虑后面把init接口替掉。
This commit is contained in:
parent
a0a49277b0
commit
cf8579d03a
@ -17,33 +17,33 @@ 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]);
|
||||||
|
|
||||||
struct _deque dq;
|
deque_t deque = deque_new();
|
||||||
deque_init(&dq, sizeof(int));
|
deque_init(deque, sizeof(int));
|
||||||
dq.print_obj = print_num;
|
deque->print_obj = print_num;
|
||||||
|
|
||||||
printf("\n\n----- demo_deque_num -----\n");
|
printf("\n\n----- demo_deque_num -----\n");
|
||||||
|
|
||||||
printf("----- after push_back -----\n");
|
printf("----- after push_back -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_back(&dq, &data[i]);
|
deque->push_back(deque, &data[i]);
|
||||||
|
|
||||||
dq.front(&dq, &temp);
|
deque->front(deque, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
dq.back(&dq, &temp);
|
deque->back(deque, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", dq.size(&dq));
|
printf("\tsize = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
dq.clear(&dq);
|
deque->clear(deque);
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -51,37 +51,37 @@ static void demo_deque_num(void)
|
|||||||
printf("----- push_back -----\n");
|
printf("----- push_back -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_back(&dq, &data[i]);
|
deque->push_back(deque, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- after pop_back -----\n");
|
printf("----- after pop_back -----\n");
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.pop_back(&dq, &temp))
|
if (true == deque->pop_back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
if (true == dq.front(&dq, &temp))
|
if (true == deque->front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.back(&dq, &temp))
|
if (deque->back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", dq.size(&dq));
|
printf("size = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("pop failed! because it is empty\n");
|
printf("pop failed! because it is empty\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -90,24 +90,24 @@ static void demo_deque_num(void)
|
|||||||
printf("----- after push_front -----\n");
|
printf("----- after push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
|
|
||||||
dq.front(&dq, &temp);
|
deque->front(deque, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
dq.back(&dq, &temp);
|
deque->back(deque, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", dq.size(&dq));
|
printf("\tsize = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
dq.clear(&dq);
|
deque->clear(deque);
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -115,67 +115,67 @@ static void demo_deque_num(void)
|
|||||||
printf("----- push_front -----\n");
|
printf("----- push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.pop_front(&dq, &temp))
|
if (true == deque->pop_front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
if (true == dq.front(&dq, &temp))
|
if (true == deque->front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.back(&dq, &temp))
|
if (deque->back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", dq.size(&dq));
|
printf("size = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- push_front -----\n");
|
printf("----- push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
printf("----- set -----\n");
|
printf("----- set -----\n");
|
||||||
temp = 11;
|
temp = 11;
|
||||||
dq.set(&dq, 0, &temp);
|
deque->set(deque, 0, &temp);
|
||||||
|
|
||||||
temp = 22;
|
temp = 22;
|
||||||
dq.set(&dq, len/2, &temp);
|
deque->set(deque, len/2, &temp);
|
||||||
|
|
||||||
temp = 33;
|
temp = 33;
|
||||||
dq.set(&dq, len - 1, &temp);
|
deque->set(deque, len - 1, &temp);
|
||||||
|
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
printf("----- get -----\n");
|
printf("----- get -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.get(&dq, i, &temp))
|
if (true == deque->get(deque, i, &temp))
|
||||||
{
|
{
|
||||||
printf("deque[%2d] = ", i);
|
printf("deque[%2d] = ", i);
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dq.destory(&dq);
|
deque_free(&deque);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void demo_deque_struct(void)
|
static void demo_deque_struct(void)
|
||||||
@ -189,33 +189,33 @@ 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]);
|
||||||
|
|
||||||
struct _deque dq;
|
deque_t deque = deque_new();
|
||||||
deque_init(&dq, sizeof(struct _student));
|
deque_init(deque, sizeof(struct _student));
|
||||||
dq.print_obj = print_struct;
|
deque->print_obj = print_struct;
|
||||||
|
|
||||||
printf("\n\n----- demo_deque_struct -----\n");
|
printf("\n\n----- demo_deque_struct -----\n");
|
||||||
|
|
||||||
printf("----- after push_back -----\n");
|
printf("----- after push_back -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_back(&dq, &data[i]);
|
deque->push_back(deque, &data[i]);
|
||||||
|
|
||||||
dq.front(&dq, &temp);
|
deque->front(deque, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
dq.back(&dq, &temp);
|
deque->back(deque, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", dq.size(&dq));
|
printf("\tsize = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
dq.clear(&dq);
|
deque->clear(deque);
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -223,37 +223,37 @@ static void demo_deque_struct(void)
|
|||||||
printf("----- push_back -----\n");
|
printf("----- push_back -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_back(&dq, &data[i]);
|
deque->push_back(deque, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- after pop_back -----\n");
|
printf("----- after pop_back -----\n");
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.pop_back(&dq, &temp))
|
if (true == deque->pop_back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
if (true == dq.front(&dq, &temp))
|
if (true == deque->front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.back(&dq, &temp))
|
if (deque->back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", dq.size(&dq));
|
printf("size = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("pop failed! because it is empty\n");
|
printf("pop failed! because it is empty\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -262,24 +262,24 @@ static void demo_deque_struct(void)
|
|||||||
printf("----- after push_front -----\n");
|
printf("----- after push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
|
|
||||||
dq.front(&dq, &temp);
|
deque->front(deque, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
dq.back(&dq, &temp);
|
deque->back(deque, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", dq.size(&dq));
|
printf("\tsize = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
dq.clear(&dq);
|
deque->clear(deque);
|
||||||
if (dq.empty(&dq))
|
if (deque->empty(deque))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -287,69 +287,69 @@ static void demo_deque_struct(void)
|
|||||||
printf("----- push_front -----\n");
|
printf("----- push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.pop_front(&dq, &temp))
|
if (true == deque->pop_front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
|
|
||||||
if (true == dq.front(&dq, &temp))
|
if (true == deque->front(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dq.back(&dq, &temp))
|
if (deque->back(deque, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", dq.size(&dq));
|
printf("size = %2d\n", deque->size(deque));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- push_front -----\n");
|
printf("----- push_front -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
dq.push_front(&dq, &data[i]);
|
deque->push_front(deque, &data[i]);
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
printf("----- set -----\n");
|
printf("----- set -----\n");
|
||||||
temp = 11;
|
temp = 11;
|
||||||
dq.set(&dq, 0, &temp);
|
deque->set(deque, 0, &temp);
|
||||||
|
|
||||||
temp = 22;
|
temp = 22;
|
||||||
dq.set(&dq, len / 2, &temp);
|
deque->set(deque, len / 2, &temp);
|
||||||
|
|
||||||
temp = 33;
|
temp = 33;
|
||||||
dq.set(&dq, len - 1, &temp);
|
deque->set(deque, len - 1, &temp);
|
||||||
|
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
dq.print(&dq);
|
deque->print(deque);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("----- get -----\n");
|
printf("----- get -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
if (true == dq.get(&dq, i, &temp))
|
if (true == deque->get(deque, i, &temp))
|
||||||
{
|
{
|
||||||
printf("deque[%2d] = ", i);
|
printf("deque[%2d] = ", i);
|
||||||
dq.print_obj(&temp);
|
deque->print_obj(&temp);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dq.destory(&dq);
|
deque_free(&deque);
|
||||||
}
|
}
|
||||||
|
|
||||||
void demo_deque(void)
|
void demo_deque(void)
|
||||||
|
@ -17,33 +17,33 @@ static void demo_queue_num(void)
|
|||||||
int temp = 0;
|
int temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
struct _queue queue;
|
queue_t queue = queue_new();
|
||||||
queue_init(&queue, sizeof(int));
|
queue_init(queue, sizeof(int));
|
||||||
queue.print_obj = print_num;
|
queue->print_obj = print_num;
|
||||||
|
|
||||||
printf("\n\n----- demo_queue_num -----\n");
|
printf("\n\n----- demo_queue_num -----\n");
|
||||||
|
|
||||||
printf("----- after push-----\n");
|
printf("----- after push-----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
queue.push(&queue, &data[i]);
|
queue->push(queue, &data[i]);
|
||||||
|
|
||||||
queue.front(&queue, &temp);
|
queue->front(queue, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
queue.back(&queue, &temp);
|
queue->back(queue, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", queue.size(&queue));
|
printf("\tsize = %2d\n", queue->size(queue));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
queue.print(&queue);
|
queue->print(queue);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
queue.clear(&queue);
|
queue->clear(queue);
|
||||||
if (queue.empty(&queue))
|
if (queue->empty(queue))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -51,47 +51,47 @@ static void demo_queue_num(void)
|
|||||||
printf("----- push -----\n");
|
printf("----- push -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
queue.push(&queue, &data[i]);
|
queue->push(queue, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- after pop -----\n");
|
printf("----- after pop -----\n");
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == queue.pop(&queue, &temp))
|
if (true == queue->pop(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
if (true == queue.front(&queue, &temp))
|
if (true == queue->front(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue.back(&queue, &temp))
|
if (queue->back(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", queue.size(&queue));
|
printf("size = %2d\n", queue->size(queue));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("pop failed! because it is empty\n");
|
printf("pop failed! because it is empty\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue.empty(&queue))
|
if (queue->empty(queue))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
queue.print(&queue);
|
queue->print(queue);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
queue.destory(&queue);
|
queue_free(&queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -102,44 +102,43 @@ static void demo_queue_char(void)
|
|||||||
char temp = 0;
|
char temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]) - 1;
|
uint32_t len = sizeof(data) / sizeof(data[0]) - 1;
|
||||||
|
|
||||||
struct _queue queue;
|
queue_t queue = queue_new();
|
||||||
// queue_init2(&queue, sizeof(char), 64);
|
queue_init2(queue, sizeof(char), 10);
|
||||||
queue_init2(&queue, sizeof(char), 10);
|
queue->print_obj = print_char;
|
||||||
queue.print_obj = print_char;
|
|
||||||
|
|
||||||
printf("\n\n----- demo_queue_char -----\n");
|
printf("\n\n----- demo_queue_char -----\n");
|
||||||
|
|
||||||
printf("----- after push-----\n");
|
printf("----- after push-----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
if(queue.push(&queue, &data[i]))
|
if(queue->push(queue, &data[i]))
|
||||||
{
|
{
|
||||||
queue.front(&queue, &temp);
|
queue->front(queue, &temp);
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
queue.back(&queue, &temp);
|
queue->back(queue, &temp);
|
||||||
printf("\tback = ");
|
printf("\tback = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
printf("\tsize = %2d\n", queue.size(&queue));
|
printf("\tsize = %2d\n", queue->size(queue));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("push failed! because it is full\n");
|
printf("push failed! because it is full\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(queue.full(&queue))
|
if(queue->full(queue))
|
||||||
{
|
{
|
||||||
printf("----- full -----\n");
|
printf("----- full -----\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
queue.print(&queue);
|
queue->print(queue);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
queue.clear(&queue);
|
queue->clear(queue);
|
||||||
if (queue.empty(&queue))
|
if (queue->empty(queue))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
@ -147,63 +146,63 @@ static void demo_queue_char(void)
|
|||||||
printf("----- push -----\n");
|
printf("----- push -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
queue.push(&queue, &data[i]);
|
queue->push(queue, &data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- after pop -----\n");
|
printf("----- after pop -----\n");
|
||||||
while(!queue.empty(&queue))
|
while(!queue->empty(queue))
|
||||||
{
|
{
|
||||||
if (true == queue.pop(&queue, &temp))
|
if (true == queue->pop(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
if (true == queue.front(&queue, &temp))
|
if (true == queue->front(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue.back(&queue, &temp))
|
if (queue->back(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", queue.size(&queue));
|
printf("size = %2d\n", queue->size(queue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (true == queue.pop(&queue, &temp))
|
if (true == queue->pop(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
|
|
||||||
if (true == queue.front(&queue, &temp))
|
if (true == queue->front(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("front = ");
|
printf("front = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue.back(&queue, &temp))
|
if (queue->back(queue, &temp))
|
||||||
{
|
{
|
||||||
printf("back = ");
|
printf("back = ");
|
||||||
queue.print_obj(&temp);
|
queue->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", queue.size(&queue));
|
printf("size = %2d\n", queue->size(queue));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (queue.empty(&queue))
|
if (queue->empty(queue))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
queue.print(&queue);
|
queue->print(queue);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
queue.destory(&queue);
|
queue_free(&queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void demo_queue_struct(void)
|
static void demo_queue_struct(void)
|
||||||
|
@ -17,58 +17,58 @@ static void demo_stack_num(void)
|
|||||||
int temp = 0;
|
int temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
struct _stack s;
|
stack_t stack = stack_new();
|
||||||
stack_init(&s, sizeof(int));
|
stack_init(stack, sizeof(int));
|
||||||
s.print_obj = print_num;
|
stack->print_obj = print_num;
|
||||||
|
|
||||||
printf("\n\n----- demo_stack_num -----\n");
|
printf("\n\n----- demo_stack_num -----\n");
|
||||||
// get top if stack is empty
|
// get top if stack is empty
|
||||||
s.peek(&s, &temp);
|
stack->peek(stack, &temp);
|
||||||
|
|
||||||
printf("----- push -----\n");
|
printf("----- push -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
s.push(&s, &data[i]);
|
stack->push(stack, &data[i]);
|
||||||
|
|
||||||
s.peek(&s, &temp);
|
stack->peek(stack, &temp);
|
||||||
|
|
||||||
printf("top = ");
|
printf("top = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
|
|
||||||
printf("size = %2d\n", s.size(&s));
|
printf("size = %2d\n", stack->size(stack));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
s.print(&s);
|
stack->print(stack);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
printf("----- pop -----\n");
|
printf("----- pop -----\n");
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == s.pop(&s, &temp))
|
if (true == stack->pop(stack, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
|
|
||||||
if (s.peek(&s, &temp))
|
if (stack->peek(stack, &temp))
|
||||||
{
|
{
|
||||||
printf("top = ");
|
printf("top = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", s.size(&s));
|
printf("size = %2d\n", stack->size(stack));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("pop failed! because it is empty\n");
|
printf("pop failed! because it is empty\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s.empty(&s))
|
if (stack->empty(stack))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s.destory(&s);
|
stack_free(&stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void demo_stack_char(void)
|
static void demo_stack_char(void)
|
||||||
@ -78,57 +78,57 @@ static void demo_stack_char(void)
|
|||||||
char temp = 0;
|
char temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]) - 1;
|
uint32_t len = sizeof(data) / sizeof(data[0]) - 1;
|
||||||
|
|
||||||
struct _stack s;
|
stack_t stack = stack_new();
|
||||||
stack_init2(&s, sizeof(char), 64);
|
stack_init2(stack, sizeof(char), 64);
|
||||||
s.print_obj = print_char;
|
stack->print_obj = print_char;
|
||||||
|
|
||||||
printf("\n\n----- demo_stack_char -----\n");
|
printf("\n\n----- demo_stack_char -----\n");
|
||||||
// get top if stack is empty
|
// get top if stack is empty
|
||||||
s.peek(&s, &temp);
|
stack->peek(stack, &temp);
|
||||||
|
|
||||||
printf("----- push -----\n");
|
printf("----- push -----\n");
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
s.push(&s, &data[i]);
|
stack->push(stack, &data[i]);
|
||||||
|
|
||||||
s.peek(&s, &temp);
|
stack->peek(stack, &temp);
|
||||||
printf("top = ");
|
printf("top = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
|
|
||||||
printf("size = %2d\n", s.size(&s));
|
printf("size = %2d\n", stack->size(stack));
|
||||||
}
|
}
|
||||||
printf("----- print -----\n");
|
printf("----- print -----\n");
|
||||||
s.print(&s);
|
stack->print(stack);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
printf("----- pop -----\n");
|
printf("----- pop -----\n");
|
||||||
for (i = 0; i < len + 1; i++)
|
for (i = 0; i < len + 1; i++)
|
||||||
{
|
{
|
||||||
if (true == s.pop(&s, &temp))
|
if (true == stack->pop(stack, &temp))
|
||||||
{
|
{
|
||||||
printf("pop = ");
|
printf("pop = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
|
|
||||||
if (s.peek(&s, &temp))
|
if (stack->peek(stack, &temp))
|
||||||
{
|
{
|
||||||
printf("top = ");
|
printf("top = ");
|
||||||
s.print_obj(&temp);
|
stack->print_obj(&temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("size = %2d\n", s.size(&s));
|
printf("size = %2d\n", stack->size(stack));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("pop failed! because it is empty\n");
|
printf("pop failed! because it is empty\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s.empty(&s))
|
if (stack->empty(stack))
|
||||||
{
|
{
|
||||||
printf("----- empty -----\n");
|
printf("----- empty -----\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s.destory(&s);
|
stack_free(&stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void demo_stack_struct(void)
|
static void demo_stack_struct(void)
|
||||||
@ -141,8 +141,7 @@ static void demo_stack_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]);
|
||||||
|
|
||||||
stack_t stack;
|
stack_t stack = stack_new();
|
||||||
stack = stack_new();
|
|
||||||
stack_init(stack, sizeof(struct _student));
|
stack_init(stack, sizeof(struct _student));
|
||||||
stack->print_obj = print_struct;
|
stack->print_obj = print_struct;
|
||||||
|
|
||||||
|
359
test/test_deque.c
Normal file
359
test/test_deque.c
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
/**
|
||||||
|
* @file test_deque.c
|
||||||
|
* @author wenjf (Orig5826@163.com)
|
||||||
|
* @brief
|
||||||
|
* @version 0.1
|
||||||
|
* @date 2024-09-01
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2024
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#include "test.h"
|
||||||
|
|
||||||
|
static void demo_deque_num(void)
|
||||||
|
{
|
||||||
|
uint32_t i = 0;
|
||||||
|
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||||
|
int temp = 0;
|
||||||
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
|
struct _deque dq;
|
||||||
|
deque_init(&dq, sizeof(int));
|
||||||
|
dq.print_obj = print_num;
|
||||||
|
|
||||||
|
printf("\n\n----- demo_deque_num -----\n");
|
||||||
|
|
||||||
|
printf("----- after push_back -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_back(&dq, &data[i]);
|
||||||
|
|
||||||
|
dq.front(&dq, &temp);
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
dq.back(&dq, &temp);
|
||||||
|
printf("\tback = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
printf("\tsize = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
dq.clear(&dq);
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_back -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_back(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- after pop_back -----\n");
|
||||||
|
for (i = 0; i < len + 1; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.pop_back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("pop = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
if (true == dq.front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("back = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("size = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("pop failed! because it is empty\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- after push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
|
||||||
|
dq.front(&dq, &temp);
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
dq.back(&dq, &temp);
|
||||||
|
printf("\tback = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
printf("\tsize = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
dq.clear(&dq);
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < len + 1; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.pop_front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("pop = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
if (true == dq.front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("back = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("size = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
printf("----- set -----\n");
|
||||||
|
temp = 11;
|
||||||
|
dq.set(&dq, 0, &temp);
|
||||||
|
|
||||||
|
temp = 22;
|
||||||
|
dq.set(&dq, len/2, &temp);
|
||||||
|
|
||||||
|
temp = 33;
|
||||||
|
dq.set(&dq, len - 1, &temp);
|
||||||
|
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
printf("----- get -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.get(&dq, i, &temp))
|
||||||
|
{
|
||||||
|
printf("deque[%2d] = ", i);
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dq.destory(&dq);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void demo_deque_struct(void)
|
||||||
|
{
|
||||||
|
uint32_t i = 0;
|
||||||
|
struct _student data[] = {
|
||||||
|
"zhao", 1001, "qian", 1002, "sun", 1003, "li", 1004,
|
||||||
|
"zhou", 1005, "wu", 1006, "zheng", 1007, "wang", 1008,
|
||||||
|
"feng", 1009, "cheng",1010,
|
||||||
|
};
|
||||||
|
struct _student temp = {0};
|
||||||
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
|
struct _deque dq;
|
||||||
|
deque_init(&dq, sizeof(struct _student));
|
||||||
|
dq.print_obj = print_struct;
|
||||||
|
|
||||||
|
printf("\n\n----- demo_deque_struct -----\n");
|
||||||
|
|
||||||
|
printf("----- after push_back -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_back(&dq, &data[i]);
|
||||||
|
|
||||||
|
dq.front(&dq, &temp);
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
dq.back(&dq, &temp);
|
||||||
|
printf("\tback = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
printf("\tsize = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
dq.clear(&dq);
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_back -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_back(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- after pop_back -----\n");
|
||||||
|
for (i = 0; i < len + 1; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.pop_back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("pop = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
if (true == dq.front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("back = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("size = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("pop failed! because it is empty\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- after push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
|
||||||
|
dq.front(&dq, &temp);
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
dq.back(&dq, &temp);
|
||||||
|
printf("\tback = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
printf("\tsize = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
dq.clear(&dq);
|
||||||
|
if (dq.empty(&dq))
|
||||||
|
{
|
||||||
|
printf("----- empty -----\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < len + 1; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.pop_front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("pop = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
|
||||||
|
if (true == dq.front(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("front = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dq.back(&dq, &temp))
|
||||||
|
{
|
||||||
|
printf("back = ");
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("size = %2d\n", dq.size(&dq));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("----- push_front -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
dq.push_front(&dq, &data[i]);
|
||||||
|
}
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
printf("----- set -----\n");
|
||||||
|
temp = 11;
|
||||||
|
dq.set(&dq, 0, &temp);
|
||||||
|
|
||||||
|
temp = 22;
|
||||||
|
dq.set(&dq, len / 2, &temp);
|
||||||
|
|
||||||
|
temp = 33;
|
||||||
|
dq.set(&dq, len - 1, &temp);
|
||||||
|
|
||||||
|
printf("----- print -----\n");
|
||||||
|
dq.print(&dq);
|
||||||
|
printf("\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
printf("----- get -----\n");
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (true == dq.get(&dq, i, &temp))
|
||||||
|
{
|
||||||
|
printf("deque[%2d] = ", i);
|
||||||
|
dq.print_obj(&temp);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dq.destory(&dq);
|
||||||
|
}
|
||||||
|
|
||||||
|
void demo_deque(void)
|
||||||
|
{
|
||||||
|
demo_deque_num();
|
||||||
|
demo_deque_struct();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user