Chinaunix首页 | 论坛 | 博客
  • 博客访问: 848092
  • 博文数量: 156
  • 博客积分: 6553
  • 博客等级: 准将
  • 技术积分: 3965
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 18:36
文章存档

2012年(3)

2011年(43)

2010年(110)

分类: C/C++

2010-10-03 16:09:19

#include
#include
typedef int datatype;
typedef struct _node_
{
 datatype data;
 struct _node_ *next;
} linkstack;
linkstack *CreateEmptyStack_1()
{
 linkstack *s;
 s = (linkstack *)malloc(sizeof(linkstack));
 s->next = NULL;
 return s;
}
void CreateEmptyStack_2(linkstack **s)
{
 *s = (linkstack *)malloc(sizeof(linkstack));
 (*s)->next = NULL;
 return;
}
int EmptyStack(linkstack *s)
{
 return (NULL == s->next);
}
void ClearStack(linkstack *s)
{
 linkstack *p, *q;
 p = s->next;
 while (p != NULL)
 {
  q = p;
  p = p->next;
  free(q);
 }
 s->next = NULL;
 return;
}
void PushStack(linkstack *s, datatype x)
{
 linkstack *p;
 p = (linkstack *)malloc(sizeof(linkstack));
 p->data = x;
 p->next = s->next;
 s->next = p;
 return;
}
datatype PopStack(linkstack *s)
{
 linkstack *q;
 datatype x;
 q = s->next;
 s->next = q->next;
 x = q->data;
 free(q);
 return x;
}
datatype GetTop(linkstack *s)
{
 return s->next->data;
}
阅读(510) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~