java 编写代码实现Stack类 ,采用单链表
2017-05-23 19:24
405 查看
请编写代码实现Stack类,该类能够实现后进先出的堆栈功能,要求实现的方法包括:
Stack(int) – 实例化指定深度的栈
boolean push(E item) – 向栈顶压入对象,成功返回true,栈已满返回false
E pop() – 从栈顶移除对象并返回,如栈为空返回null
E peek() – 查看并返回栈顶的对象,如栈为空返回null
int size() – 返回堆栈中当前的元素数量
int depth() – 返回当前堆栈深度
Stack(int) – 实例化指定深度的栈
boolean push(E item) – 向栈顶压入对象,成功返回true,栈已满返回false
E pop() – 从栈顶移除对象并返回,如栈为空返回null
E peek() – 查看并返回栈顶的对象,如栈为空返回null
int size() – 返回堆栈中当前的元素数量
int depth() – 返回当前堆栈深度
package datastruct.stack; class Node<E>{ Node <E> next=null; E data; public Node(E data) { this.data=data; } } //采用链表实现栈 public class Stack<E> { int depth;//栈的深度 public Stack(int i) { this.depth=i; } Node<E> top=null; //将元素压入栈中 public boolean push(E data) { if (size()<depth) { Node<E> newNode=new Node<E>(data); newNode.next=top; top=newNode; return true; } return false; } //读取栈中的头结点,不删除头结点 public E peek() { if (top==null) { return null; } return top.data; } //获取栈中的头结点,并删除头结点 public E pop() { if (top==null) { return null; } Node<E> tmp=top; top=top.next; return tmp.data; } //栈的元素个数 public int size(){ int leng=0; Node tmeNode=top; while(tmeNode!=null) { tmeNode=tmeNode.next; leng++; } return leng; } //当前栈的深度 public int depth() { return this.depth; } public static void main(String[] args) { Stack stack=new Stack<>(2); System.out.println(stack.push(1)); System.out.println(stack.push(2)); System.out.println(stack.push(3)); System.out.println(stack.size()); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.depth()); } }
相关文章推荐
- 采用MPI_Send 和MPI_Recv 编写代码来实现包括MPI_Bcast、MPI_Alltoall、MPI_Gather、MPI_Scatter 等MPI 群集通信函数的功能
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- 如何实现多个线程同步 (2013-11-10 12:07:24)转载▼ 标签: it 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题,Java实现线程同步的方法很多
- 对一串数字采用相应的加密策略后传输的Java实现代码
- 采用Java的反射机制编写的克隆类以及方法的代码
- java实现网上在线支付--09,10,11,12_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现
- Java单链表的实现代码
- HDFS的JAVA客户端编写(JAVA代码实现对HDFS的操作)
- [编写高质量代码:改善java程序的151个建议]建议31-在接口中不要存在实现代码
- [编写高质量代码:改善java程序的151个建议]建议31-在接口中不要存在实现代码
- [编写高质量代码:改善java程序的151个建议]建议88 用枚举实现工厂方法模式更简单
- 问题1:java中没有实现这种“byte a = 0xB2 --> String b = “B2””转换的简单实现需要自己实现。 答:自己编写的转换函数,思路将byte的高低4位分开,分别转换为对应的字符然后合成返回的字符串。 java 代码 1.
- Struts2:输入 da24 校验-采用手工编写代码实现
- java代码初级,采用MVC框架实现对数据库的添加操作
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- 采用 MPI_Send 和 MPI_Recv 编写代码来实现 MPI_Allgather 的功能
- java在线支付---09,10,11,12_在线支付_分析易宝支付网关的应答协议与处理代码,完成用于处理支付响应的Servlet的初步编写和调试,完成处理支付网关响应结果的Servlet,支付实现