【Java】一个数组实现三个栈 (未完待续)
来源:互联网 发布:2017优化六上数学答案 编辑:程序博客网 时间:2024/05/17 03:52
等长的相对简单,设置三个栈顶指针,考虑栈为空的情况分别push和pop就好
public class threeStacks {int stackSize = 100;int[] buffer = new int[ stackSize * 3 ];int[] stackPointer = {-1, -1, -1}; //pointer to trace the stack element number in every stackvoid push(int stackNum, int value) throws Exception {//check if there's free spaceif (stackPointer[stackNum] + 1 >= stackSize) { //the last elementthrow new Exception ("Out of space!");}//stack pointer increases, update the top element valuestackPointer[stackNum]++;buffer[absTopOfStack(stackNum)] = value;}int pop(int stackNum) throws Exception {if ( -1 == stackPointer[stackNum] ) {throw new Exception ("Trying to pop an empty stack!");}int value = buffer[absTopOfStack(stackNum)];buffer[absTopOfStack(stackNum)] = 0; //mark as 0stackPointer[stackNum]--;return value;}int peek(int stackNum) {int index = absTopOfStack(stackNum);return buffer[index];}boolean isEmpty(int stackNum) {return stackPointer[stackNum] == -1;}//return the top element's absolute index in buffer[]int absTopOfStack(int stackNum) {return stackNum * stackSize + stackPointer[stackNum];}}
变长的比较复杂, 未完待续
0 0
- 【Java】一个数组实现三个栈 (未完待续)
- 后缀数组(未完待续)
- Java 实现常用排序算法(未完待续。。。)
- 剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)
- 树状数组小结(未完待续)
- 一个数组实现三个栈
- Java API 汇总(未完待续)
- Java技术小结(未完待续)
- JAVA聊天程序经验总结(未完待续)
- Java编写记事本 (未完待续)
- java IO使用心得(未完待续...)
- JAVA 身份证工具类(未完待续)
- java连接hive(未完待续)
- Java虚拟机的结构(未完待续)
- java的基础语法(未完待续)
- java Object 全解析(未完待续)
- java中的锁(未完待续)
- Java基础--待续未完
- Android 自定义Dialog,以及失去焦点之后,Dialog消失的解决
- C# 编写Windows服务并设置为“允许服务与桌面交互”
- mongodb进阶二之mongodb聚合
- IOS开发网络篇之──ASIHTTPRequest详解
- python中sorted()函数的应用
- 【Java】一个数组实现三个栈 (未完待续)
- ubuntu安装php curl扩展
- 进程与线程的区别
- 【Python】Windows版本的Python开发环境的配置,Helloworld,Python中文问题,输入输出、条件、循环、数组、类
- Setjmp 与longjmp
- LA3902 - Network
- DWR中获得session,request,response的方法(转)
- 关于C++子类父类成员函数的覆盖和隐藏
- c 字符串操作函数strtok、strstr、strchr