mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-18 03:51:35 +08:00
114 lines
1.9 KiB
C
114 lines
1.9 KiB
C
#include "test.h"
|
|
|
|
#if STACK_TEST == 1
|
|
|
|
void stack_test(void)
|
|
{
|
|
int32_t i = 0;
|
|
uint32_t size = 0;
|
|
stack_data_t dat[10] = {0,1,2,3,4,5,6,7,8,9};
|
|
stack_data_t tmp;
|
|
pstack_t pst;
|
|
if(!stack_init(&pst))
|
|
{
|
|
printf("failure -> stack_init\n");
|
|
}
|
|
printf("success -> stack_init\n");
|
|
|
|
// push
|
|
for(i = 0; i < 10; i++)
|
|
{
|
|
if(!stack_push(pst,dat[i]))
|
|
{
|
|
printf("failure -> stack_push\n");
|
|
}
|
|
printf(" push %d\n",dat[i]);
|
|
}
|
|
printf("success -> stack_push\n");
|
|
|
|
// stack size
|
|
size = stack_get_size(pst);
|
|
if(size != 10)
|
|
{
|
|
printf("failure -> the size of stack is %d\n",size);
|
|
}
|
|
else
|
|
{
|
|
printf("success -> the size of stack is %d\n",size);
|
|
}
|
|
|
|
if(!stack_empty(pst))
|
|
{
|
|
printf("success -> the stack is not empty!\n");
|
|
}
|
|
else
|
|
{
|
|
printf("failure -> the stack is empty!\n");
|
|
}
|
|
|
|
// pop
|
|
for(i = 0; i < 10; i++)
|
|
{
|
|
stack_get_top(pst,&tmp);
|
|
printf(" top = %d",tmp);
|
|
stack_pop(pst,&tmp);
|
|
printf(" pop %d\n",tmp);
|
|
}
|
|
printf("stack_pop success!\n");
|
|
|
|
// stack size
|
|
size = stack_get_size(pst);
|
|
if(size != 0)
|
|
{
|
|
printf("failure -> the size of stack is %d\n",size);
|
|
}
|
|
else
|
|
{
|
|
printf("success -> the size of stack is %d\n",size);
|
|
}
|
|
|
|
if(stack_empty(pst))
|
|
{
|
|
printf("success -> the stack is empty!\n");
|
|
}
|
|
else
|
|
{
|
|
printf("failure -> the stack is empty!\n");
|
|
}
|
|
|
|
for(i = 0; i < 5; i++)
|
|
{
|
|
stack_push(pst,dat[i]);
|
|
}
|
|
if(!stack_empty(pst))
|
|
{
|
|
stack_clear(pst);
|
|
printf("success -> stack_clear\n");
|
|
if(stack_empty(pst))
|
|
{
|
|
printf("success -> the stack is empty!\n");
|
|
}
|
|
}
|
|
|
|
stack_destroy(&pst);
|
|
printf("success -> stack_destroy\n");
|
|
|
|
if(!stack_push(pst,dat[0]))
|
|
{
|
|
printf("success -> stack_push failed!\n");
|
|
}
|
|
|
|
stack_pop(pst,&tmp);
|
|
printf("success -> stack_pop invalid!\n");
|
|
|
|
if(stack_empty(pst))
|
|
{
|
|
printf("success -> If pst is NULL, stack_empty alse return true!\n");
|
|
}
|
|
|
|
printf("----------------------------------------\n");
|
|
}
|
|
|
|
#endif
|
|
|