栈的链式存储结构

栈的链式存储结构

 top-栈顶->........->栈底

其栈顶就相当于头结点

以下代码:

typedef struct StackNode {
	int data;
	struct StackNode*next;
}StackNode,*Stackptr;
typedef struct LinkStack {
	Stackptr top;//top指针,指向元素
	//没有长度限制,只有计数器来记录长度
	int cnt;//计数器
}LinkStack;
//进栈操作就是在表头添加一个结点,并把次结点当做头结点
void LinkPush(LinkStack *s, int e) {
	Stackptr p = (Stackptr)malloc(sizeof(StackNode));
	p->data = e;
	p->next = s->top;
	s->top = p;
	s->cnt++;
}
//出栈操作就是把栈顶下移一个,计数器减一。
void LinkPop(LinkStack*s, int *e) {
	Stackptr p;
	*e = s->top->data;
	p = s->top;
	s->top = p;
	s->top = s->top->next;//栈顶下移
	s->cnt--;
}


阅读更多
个人分类: 程序
上一篇逆波兰计数器 栈的实现
下一篇队列的链式结构 和 环形队列的有序结构
想对作者说点什么? 我来说一句

数据结构栈链式存储结构

2010年11月01日 7KB 下载

没有更多推荐了,返回首页

关闭
关闭