一、定义
栈(FILO)是一种特殊的数据结构,它的特性是只能在栈顶通过push的方法来存放数据,也只能通过pop这种操作来
弹出栈顶数据,它的这种结构也就决定了它是先进后出的这与队列刚好相反。
二、使用
栈的操作就是入栈,出栈。下面我用链式存储结构来实现栈,还有它的一些API。
typedef int SeqType;
typedef struct Node//定义数据节点
{
SeqType data;
struct Node *next;
}Node;
typedef struct Header//定义头节点
{
int Length;
Node *top;//栈顶指针
}Header;
Header *Creat_Stack()//创建栈
{
Header *header = NULL;
header = (Header *)malloc(sizeof(Header));
header->Length = 0;
header->top = NULL;
return header;
}
bool Push_Stack (Header *header,Node *node)//入栈
{
if(header->Length == 0)
{
header->top = node ;
node->next = NULL;
header->Length ++;
return true;
}
node->next = header->top;
header->top = node;
header->Length ++;
return true;
}
bool Pop_Stack(Header *header)//弹出栈顶元素
{
Node *t