栈的概念:
栈是限制在一端进行操作,允许操作的一端称为栈顶,固定的一端称为栈底;
栈的特性:后进先出
栈分为顺序栈和链式栈;
为了结构的严谨,我们都要考虑多种情况,一般为判空判满,或者为其它的特殊情况。
一、顺序栈
r如图这是一个顺序栈,它的左边是一个data指针指向的空间,当前只定义了一个结构体。
下面为定义的.h文件
接下来实现我们要用调用的函数
1)创建stack_create();
还是malloc 空间然后赋初值;
这里我们需要malloc两个空间,一个为data指针指向用来存放数据的maxlen * data_t大小的空间,还需要Malloc一个栈。
2)压栈(push)
stack_push(sqstack *s)
压栈为在栈上放入一个数据vaule
操作就是在栈顶放入一个数据 ->data[s->top]=Vaule ,top++
代码:
3)出栈(pop)
stack_pop(sqstack *s)
操作和入栈差不多
代码: