最近总觉得逻辑思维有点差劲,上大学的时候,老师曾经说过学好数据结构不管以后用什么语言都能够做到游刃有余,当时年少轻狂,现在从新把数据结构拾起来。从第一个开始:栈
package test;
/**
* @author 作者 Marcospring:
* @version 创建时间:2012-7-23 下午01:57:34
* 栈
*/
public class Stack {
private int [] S;
private int top;
//初始化一个栈
public Stack(int size){
S = new int[size];
top = -1;
}
//判断栈是否为空。
public boolean StackEmpty(){
return top == -1;
}
//判断栈是否满了
public boolean StackFull(){
return top == S.length-1;
}
//入栈
public void Push(int el){
if(S != null){
if(StackFull()){
System.out.print("栈满了!");
}else{
top++;
S[top]= el;
}
}else{
System.out.println("请初始化栈!");
}
}
//出栈
public int Pop(){
if(StackEmpty()){
System.out.println("栈为空!");
return 0;
}else{
int temp = S[top];
top--;
return temp;
}
}
//取栈顶元素
public int StackTop(){
if(StackEmpty()){
System.out.print("栈为空!");
return 0;
}else{
return S[top];
}
}
//清空栈
public void ClearStack(){
top = -1;
}
//展示栈中的内容
public void display(){
if(StackEmpty()){
System.out.println("栈为空!");
}else{
for(int i=top;i>=0;i--){
System.out.print(S[i]+",");
}
}
}
}
代码是我看这数据结构中对栈的定义,以及对栈操作写的。我个人认为不好理解的地方在栈顶也就是top这个变量。栈顶我最先认为的是栈的大小。通过画图发现错了,所谓栈顶,应该是栈顶第一个元素的索引才对。
分享到:
相关推荐
用java写的简单栈的实现,欢迎大家使用
关于Java栈与堆的思考
java数字栈和符号栈模拟计算器(中缀表达式) “计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说...
通过Java面向对象思想和类的封装性完成栈的类设计,选择合适的底层存储结构,完成栈的判空isEmpty()、进栈push()、出栈pop()、取栈顶元素peek(),栈存储的对象以泛型给出。并和Java中的Stack的类以及功能进行比较...
java栈实验代码
Java栈详解Java栈详解
利用java写的一些关于栈和队列的小例子,拿出来供大家分享和学习.
栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
JAVA栈类程序代码,包括进栈,出栈,以及栈空栈满的判定,希望能帮助到大家。
详细解析Java栈与堆的存储机制。 个人理解,高手请绕道。
关于栈的使用,内有关于使用的示例 栈的应用举例 1. 将10进制正整数num转换为n进制 private String conversion(int num, int n) { MyStack<Integer> myStack = new MyArrayStack(); Integer result = num; ...
Java卡Java卡虚拟机解释器Java栈异常处理[定义].pdf
慢慢的回味.entry_point–JVM Java栈桢的创建1
栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
变量在Java栈、堆内存中的运用管理分析
Java栈的实例-数组和链表两种方法 数组和链表.pdf
区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈区别Java中堆与栈
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过...
java中的栈(深层了解java虚拟机对对象的内存分布)