Java实现栈的顺序存储结构情况
来源:互联网 发布:mac 服务器域名怎么看 编辑:程序博客网 时间:2024/05/17 17:44
由大话数据结构中参考,使用Java实现栈的顺序存储
1.定义一个栈的常见操作接口:stackADT
public boolean push(Object element);//压栈 public Object pop();//出栈 public boolean isEmpty(); public int size(); public Object peek();//返回栈顶对象的一个引用 public String toString(); public void expand();//扩容成2倍
2.实现stackADT---SequenceStack
private Object[] array;//存储元素的容器,初始化为5 private int top;//指示栈顶位置元素所在位置;索引 public SequenceStack() { array = new Object[5]; top = -1; } /** * 压栈:向栈顶添加元素 * * @param element * @return */ @Override public boolean push(Object element) { if (top == array.length - 1) { expand(); } array[top + 1] = element; top += 1; return true; } @Override public Object pop() { if (top != -1) { Object result = array[top]; array[top] = null; top -= 1; return result; } return null; } @Override public boolean isEmpty() { return top == -1 ? true : false; } @Override public int size() { return top + 1; } //返回栈顶对象的一个引用 @Override public Object peek() { if (!isEmpty()) { return array[top]; } return null; } //扩容成2倍 @Override public void expand() { Object[] large = new Object[size() * 2]; for (int index = 0; index < top + 1; index++) { large[index] = array[index]; } array = large; } public static void main(String[] args) { SequenceStack stack = new SequenceStack(); for (int i = 0; i < 7; i++) { stack.push("a" + (i + 1)); } for(int i = 0;i<3;i++){ stack.pop(); } System.out.println(stack.isEmpty()); System.out.println("===================="); System.out.println(stack.peek() + " === " + stack.size()); }记录下我的学习路程
阅读全文
0 0
- Java实现栈的顺序存储结构情况
- Java基础 - 栈的顺序存储结构及实现
- 栈的顺序存储结构的实现
- 栈的顺序存储结构实现
- 栈的顺序存储结构和实现
- 线性结构--->栈的顺序存储实现
- 栈的顺序存储结构以及实现
- 栈的顺序存储结构及实现
- 栈的顺序存储结构---顺序栈的实现
- JAVA实现队列的顺序存储结构和操作
- 用Java实现线性表的顺序存储结构
- Java基础 - 队列的顺序存储结构及实现
- 线性表顺序存储结构的具体实现过程--java
- Java中栈的实现(1)-使用顺序存储结构(数组)以及实现
- 栈的顺序存储结构和操作实现 数组实现
- 栈的顺序存储结构
- 栈的顺序存储结构
- 栈的顺序存储结构
- 记一次分布式B站爬虫任务系统的完整设计和实施
- 应用软件系统程序员的三个立面
- 下拉菜单
- 6月Unity技术路演华东站报名启动!
- NET Core中使用Irony实现自己的查询语言语法解析器
- Java实现栈的顺序存储结构情况
- .net Core 生产环境 KestrelServer + Shell 实践
- C#码农的大数据之路
- 使用DotNetty编写跨平台网络通信程序
- Asp.Net Core轻量级Aop解决方案:AspectCore
- DDD领域驱动之干货 (一)
- IdentityServer4(OAuth2.0服务)折腾笔记
- EF通用数据层封装类(支持读写分离,一主多从)
- 编写高性能 .NET 代码 第一章:工具介绍 -- Performance Counters(性能计数器)