ii沙漠

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1、存储方式:

同一般线性表的单链式存储结构完全相同。但是应该确定链表的哪端对应于栈顶,如果链表尾作为栈顶,则入,出栈操作的时间复杂性为O(n)。

如果链表头作为栈顶,则入、出栈操作的时间复杂性为O(1)。所以,一般把链表的表头作为栈顶。

2、实现

1)栈初始化

S=(LStack*)malloc(sizeof(LStack));

S.next=NULL;

2)入栈

p=(LStack*)malloc(sizeof(Lstack));

p->data=e;

p->next=S->next;

S-next=p;

3)出栈//删除栈顶元素,并用e返回其值

if(S->next==NULL)

return EVERFLOW

else p=S->next;e=p->data;

s-next=p->next;

free(p);

4)判断栈是否空

if(S->next=NULL)

return TRUE;

posted on 2014-04-13 16:41  ii沙漠  阅读(156)  评论(0编辑  收藏  举报