1.定义
链栈是采用链表作为存储结构实现的栈。为便于操作,采用带头结点的单链表实现栈。由于栈的插入和删除操作仅限制在表头位置进行,所以链表的表头指针就作为栈顶指针。
top为栈顶指针,始终指向当前栈顶元素前面的头结点。
若top->next=NULL,则代表空栈。
注:1.链栈在使用完毕时,应该释放其空间。
2.链式栈无栈满问题,空间可扩充
3.插入与删除仅在栈顶处执行
4.链式栈的栈顶在链头
链栈的存储结构:
typedef int elemtype;
typedef struct LinkedStackNode
{ elemtype data;
struct LinkedStackNode * next;
} LinkedStackNode,*LinkedStack;
2.基本操作
1.初始化
//链栈的初始化
LinkedStack Init_LinkedStack( )
{ LinkedStack top = (LinkedStackNode *) malloc ( sizeof(LinkedStackNode) ); /*为头结点申请分配内存空间*/
top->next = NULL; /*设置栈顶指针为空*/
printf("初始化成功。\n");
return top; /*返回头结点指针*/
}<