数据结构-栈
来源:互联网 发布:淘宝权和55开闹翻视频 编辑:程序博客网 时间:2024/06/03 08:57
栈的定义
栈是一种特殊的线性表。其特殊性在于仅允许在表的一端进行插入和删除。
Stack
public interface Stack<AnyType> { void push(AnyType x); void pop(); AnyType top(); AnyType topAndPop(); boolean isEmpty(); void makeEmpty();}
动态数组实现
public class ArrayStack<AnyType> implements Stack<AnyType> { public ArrayStack() { theArray = (AnyType[]) new Object[DEFAULT_CAPACITY]; topOfStack = -1; } @Override public void push(AnyType x) { if (topOfStack + 1 == theArray.length) doubleArray(); theArray[++topOfStack] = x; } @Override public void pop() { if (isEmpty()) System.out.println("ArrayStack pop"); topOfStack--; } @Override public AnyType top() { if (isEmpty()) System.out.println("ArrayStack top"); return theArray[topOfStack]; } @Override public AnyType topAndPop() { if (isEmpty()) System.out.println("ArrayStack topAndPop"); return theArray[topOfStack--]; } @Override public boolean isEmpty() { return topOfStack == -1; } @Override public void makeEmpty() { topOfStack = -1; } private AnyType[] theArray; private int topOfStack; private static final int DEFAULT_CAPACITY = 10;}
链表实现
public class ListStack<AnyType> implements Stack<AnyType> { @Override public void push(AnyType x) { topOfStack=new ListNode(x, topOfStack); } @Override public void pop() { if(isEmpty()) System.out.println("ListStack pop"); topOfStack=topOfStack.next; } @Override public AnyType top() { return topOfStack.element; } @Override public AnyType topAndPop() { AnyType topItem=topOfStack.element; topOfStack=topOfStack.next; return topItem; } @Override public boolean isEmpty() { return false; } @Override public void makeEmpty() { } private ListNode<AnyType> topOfStack=null;}class ListNode<AnyType>{ public ListNode(AnyType theElement) { this(theElement,null); } public ListNode(AnyType theElement,ListNode<AnyType> n) { element=theElement; next=n; } public AnyType element; public ListNode next;}
0 0
- 数据结构---栈
- 数据结构-栈
- 数据结构 栈
- 数据结构--栈
- 数据结构 栈
- 数据结构(栈)
- 数据结构栈
- 数据结构-栈
- 数据结构-----栈
- 数据结构-栈
- 【数据结构】栈
- 数据结构---->栈
- 数据结构---栈
- 数据结构--栈
- 数据结构----栈
- 数据结构--栈
- 【数据结构】 栈
- 数据结构 -- 栈
- 浮躁的过去,开启的项目管理之路(一)
- SQL占用CPU100%
- KJframeforandroid框架之 KJBlog学习(三):
- NEtWorking_四种数据请求方式
- LEETCODE-Majority Element
- 数据结构-栈
- jstl标签库的运用
- 指针常量和常量指针
- Java中抽象类和接口的区别
- 中国十大热门网站榜中榜/Alexa综合排名TOP10(2015)
- +【CSS3】使用纯css代码实现图片轮播效果
- linux下的网络命令netstat
- BZOJ 1097 [POI2007]旅游景点atr dijikstra+状压DP
- 在VCKBASE上读到《一种漂亮的自绘菜单》 [作者:郑恒 (lbird)]