Java面试题:如何用java代码写一个堆栈

转载 2017年12月07日 21:42:58

原文引用自http://www.jobui.com/mianshiti/it/java/7882/点击打开链接


public class Stack {

int[] data;
int maxSize;
int top;
public Stack(int maxSize) {
this.maxSize = maxSize;
data = new int[maxSize];
top = -1;
}

/**
* 依次加入数据
* @param data 要加入的数据
* @return 添加是否成功
*/
public boolean push(int data) {
if(top+1== maxSize) {
System.out.println(“栈已满!”);
return false;
}
this.data[++top] = data;
return true;
}

/**
* 从栈中取出数据
* @return 取出的数据
*/
public int pop() throws Exception{
if(top==-1) {
throw new Exception(“栈已空!”);
}
return this.data[top--];
}

public static void main(String[] args) throws Exception {
Stack stack=new Stack(1000);
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
while(stack.top>=0)
{
System.out.println(stack.pop());
}
}
}

利用堆栈进行四则运算

我们正常的四则运算在计算机里是并不被识别的,因此想要利用程序实现四则运算就需要先将我们熟悉的中缀表达式转化为无需括号的后缀表达式。这个后缀表达式是由波兰的逻辑学家JAN提出,也称为逆波兰式。 ...
  • u010693888
  • u010693888
  • 2015年05月12日 14:36
  • 349

Java无锁堆栈详解

有这样一个题目: 实现一个无锁的Stack,并写一段测试代码(多线程访问),证明这个Stack是线程安全的。分析:出于节省内存空间的考虑,使用链式的存储结构来实现。 实现该堆栈的思想为: 1、压入...
  • shf4715
  • shf4715
  • 2017年04月27日 13:06
  • 489

堆栈和队列的实现

要求:写Stack.java,实现堆栈功能,使用int数组保存数据 特点:先进后处 后进先出 Queue.java,实现队列功能,使用int数组保存数据 特点:先进先出 后进后出 使用Test....
  • suwu150
  • suwu150
  • 2016年08月09日 23:09
  • 975

c++利用链表写一个简单的栈

c++中其实有stack的模板类。功能更为强大。 自己写一个栈能让我们对栈这种数据结构更加熟悉。这个栈有一个不足之处就是里面存放的元素类型只能为int。#include using namespa...
  • huplion
  • huplion
  • 2015年11月16日 19:47
  • 1332

堆栈的深度理解

接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据。那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变量的呢?下面就会对此进行深入的讨论。下文中的C语言代码如没有特别声明,默认都使...
  • yangzhen19900701
  • yangzhen19900701
  • 2013年08月03日 13:04
  • 7973

Python 数据结构_堆栈

目录目录 堆栈堆栈堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 . 在堆栈中, push 和 pop 是常用术语: push: 意思是...
  • Jmilk
  • Jmilk
  • 2016年08月30日 16:41
  • 1022

使用LinkedList模拟一个堆栈或者队列数据结构

LinkedList特有方法:addFirst(); addLast();getFirst(); getLast();获取元素但不删除元素。如果集合中没有元素会会出现NoSuchElementExce...
  • daomihuihui
  • daomihuihui
  • 2015年04月20日 22:55
  • 1369

堆栈与队列的区别整理

理论: 共同特点: 栈:是限制在表的一端进行插入和删除运算的线性表。栈又称后进先出简称:LIFO表 队列:也是一种运算受限的线性表。它只允许在标的一端进行插入,而在另一端进行删除。队列亦称:先...
  • ZIV555
  • ZIV555
  • 2016年05月23日 09:07
  • 1106

什么是堆栈帧

可以肯定地说,任何设计合理的程序都是围绕着数据进行设计的。哪些数据必须由程序来管理呢?在程序中这些数据最准确、高效的表示方法是什么?这些都是有经验的软件设计人员和软件开发人员必须知道的最基本的问题。 ...
  • zealfory
  • zealfory
  • 2017年08月08日 11:20
  • 492

3-08. 堆栈模拟队列(25)(ZJU_PAT 模拟)

3-08. 堆栈模拟队列(25)(ZJU_PAT 模拟)
  • u012860063
  • u012860063
  • 2014年10月22日 22:25
  • 2594
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java面试题:如何用java代码写一个堆栈
举报原因:
原因补充:

(最多只允许输入30个字)