栈、队列与简单统计引擎的实现与应用
栈和队列
栈和队列是简单的数据结构,它们实际上是列表数据结构的变体。其操作遵循一定规则,栈遵循后进先出(LIFO)原则,使用 push 和 pop 操作;队列遵循先进先出(FIFO)原则,使用 shift 到前端和从后端 pop 的操作。
可以仅使用CPP和两个头文件来实现这两种数据结构,头文件仅21行代码,无需复杂的定义就能完成栈和队列的所有操作。为检验学习效果,下面给出单元测试,需实现相应的头文件使测试通过,且不能创建 stack.c 或 queue.c 实现文件,仅使用 stack.h 和 queue.h 文件。
以下是栈的单元测试代码 stack_tests.c :
#include "minunit.h"
#include <lcthw/stack.h>
#include <assert.h>
static Stack *stack = NULL;
char *tests[] = { "test1 data", "test2 data", "test3 data" };
#define NUM_TESTS 3
char *test_create()
{
stack = Stack_create();
mu_assert(stack != NULL, "Faile
超级会员免费看
订阅专栏 解锁全文

86万+

被折叠的 条评论
为什么被折叠?



