Chinaunix首页 | 论坛 | 博客
  • 博客访问: 686048
  • 博文数量: 152
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1793
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 12:26
个人简介

相信自己,只有不想做的,没有做不到的。

文章分类

全部博文(152)

文章存档

2021年(1)

2015年(2)

2014年(74)

2013年(75)

分类: LINUX

2013-10-27 21:31:03

#include
#include

/****************************栈*************************/
//栈头的类型
typedef struct 
{
//栈顶元素的位置
struct node *top;
//栈中元素的个数
int n;
}LinkStack;


LinkStack *create_empty_stack()
{
LinkStack *s;


s = (LinkStack *)malloc(sizeof(LinkStack));
s->top = NULL;
s->n = 0;


return s;
}


int is_empty_stack(LinkStack *s)
{
return s->top == NULL ? 1 : 0;
}


int push_stack(LinkStack *s,DATATYPE data)
{
struct node *temp;

temp = (struct node *)malloc(sizeof(struct node));
temp->data = data;

temp->next = s->top;
s->top = temp;

s->n ++;


return 0;
}


DATATYPE pop_stack(LinkStack *s)
{
DATATYPE data;
struct node *temp;

temp = s->top;
s->top = temp->next;
data = temp->data;
free(temp);
temp = NULL;

s->n --;


return data;
}

     
DATATYPE get_top_data(LinkStack *s)
{
return s->top->data;
}

以链表的形式来实现栈的功能,栈的每个元素都看成一个链表的节点, 这是一个很好的结合,在实际运行中也比较多
阅读(884) | 评论(0) | 转发(0) |
0

上一篇:顺序队列的是新

下一篇:链表队列的实现

给主人留下些什么吧!~~