您的位置:首页 > 理论基础 > 数据结构算法

《数据结构》严蔚敏版(java解)——第三章 栈和队列02 链式栈操作

2017-02-14 16:07 447 查看
概念:链栈即采用链表作为存储结构实现的栈。

特点:当采用单链表存储线性表后,根据单链表的操作特性选择单链表的头部作为栈顶,此时,入栈、出栈等操作可以在Ο (1)内完成。

代码实现

package csdn.wj.linear;

import csdn.wj.assistant.Node;
import csdn.wj.assistant.Stack;

public class Stack02 implements Stack {
private Node top;
private int size;
//链表首结点引用
//栈的大小
public Stack02() {
top = null;
size = 0;
}
//返回堆栈的大小
public int getSize() {
return size;
}
//判断堆栈是否为空
public boolean isEmpty() {
return size==0;
}
//数据元素 e入栈
public void push(Object e) {
Node tmp = top;
Node q = new Node((int)e);
q.next = tmp;
top = q;
size++;
}
//栈顶元素出栈
public Object pop() throws StackEmptyException {
if (size<1)
throw new StackEmptyException("错误,堆栈为空。");
int obj = top.data;
top = top.next;
size--;
return obj;
}
//取栈顶元素
public Object peek() throws StackEmptyException {
if (size<1)
throw new StackEmptyException("错误,堆栈为空。");
return top.data;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐