栈和队列是特殊的线性表
栈是插入和删除都在栈尾的线性表
分为两种实在形式一种是顺序方式另一种是链表方式
顺序方式时用 top表示
typedef int datatype;
typedef struct{
datatype data[MAXSIZE];
int top;
}sqtack;
根据数据结构的不同,实在方法也不同
顺序方式下
push操作是 top为空时是 -1 增加的情况top + 1,pop则相反
链式方式下
typedef struct stackNode
{
datatype data;
struct stackNode *next;
}stackNode,*linkStackPtr;
typedef struct linkstack
{
linkStackPtr top;
int count;
}linkStack;
push的时候是头插法
malloc出新结点后,s->data = e;
s->next = top->next;
top = s;
count++;
pop的时候
top = top->next;
free(top);
count--;
原文:https://www.cnblogs.com/ninjakim/p/9738662.html