复习栈,用数组实现的栈及测试:
package com.test.data_struct;
public class MyStack {
private int maxSize;
private int[] stackArray;
private int top;
public MyStack(int max){
maxSize=max;
stackArray=new int[maxSize];
top=-1;
}
public int pop(){
return stackArray[top--];
}
public void push(int n){
stackArray[++top]=n;
}
public int peek(){
return stackArray[top];
}
public boolean isEmpty(){
return top==-1;
}
public boolean isFull(){
return top==maxSize-1;
}
}
package com.test.data_struct;
import com.test.data_struct.*;
public class MyStackTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyStack ms1=new MyStack(3);
int n=1;
while(!ms1.isFull())
ms1.push(n++);
System.out.println(ms1.peek());
while(!ms1.isEmpty())
System.out.println(ms1.pop());
}
}
分享到:
相关推荐
本文将详细讲解如何使用C#实现一个名为`MyStack`的栈类,以及它所包含的关键知识点。 首先,我们需要创建一个新的C#类,命名为`MyStack`。这个类通常会继承自`System.Collections.Generic.Stack<T>`基类,以利用其...
《MyStack:自定义堆栈模板类的实现与应用》 在编程中,堆栈(Stack)是一种常用的数据结构,遵循“后进先出”(Last In First Out, LIFO)的原则,常用于解决递归、函数调用、内存管理等问题。在C++中,我们可以...
本项目"mystack.zip"提供了一个使用C++模板类实现的栈——MyStack,旨在帮助开发者更好地理解和运用栈的基本操作。以下是对这个实现的详细解析: 首先,C++模板类是C++中的一种泛型编程工具,它允许我们定义一个...
MyStack.java
String s = mystack.peek().toString(); System.out.println("栈顶对象为"+s+"\t"+"当前栈区大小为"+mystack.size()); if (s.equals("name")) { name = new String(c, start, end); emp.setName(name...
在本任务中,我们面临的是一个Java编程作业,要求重写一个名为`Mystack`的类,以便能够逆序打印字符串。这个作业可能涉及到数据结构、栈操作以及字符串处理等核心概念。首先,让我们深入理解栈(Stack)数据结构及其...
本题目涉及的是在自定义类MyStack中实现列表字段的深拷贝。这通常是为了确保当一个对象被复制时,其内部引用的数据结构(如列表)也能够独立于原对象进行操作,不会因原对象的改变而受到影响。 首先,我们需要理解...
这个任务涉及到了对一个名为`MyStack`的自定义类进行修改,目的是实现其内部列表字段的深拷贝。这通常是为了解决当一个对象被复制时,其内部引用类型的数据也应被完整复制,而不仅仅是引用本身。 首先,我们来理解...
在给定的标题和描述中,任务是重写一个名为`myStack`的类,该类在内部可能使用了一个列表(List)字段,并要求实现这个列表的深拷贝。这通常是为了确保在拷贝后,原对象和新对象的列表元素是独立的,修改其中一个...
在这个任务中,我们被要求重写一个名为`MyStack`的类,其内部使用了一个列表字段。关键在于实现“深层副本”功能,这涉及到复制对象时,不仅复制对象本身,还要复制其引用的所有对象,确保原始对象和副本之间的独立...
主要涉及栈的设计与栈的应用,栈的后进先出特性使其广泛应用于各种问题解决方案中,这里主要介绍以下5种问题的栈方法解决方案。 1)进制转换; 2)括号匹配; 3)多项式求解; 4)八皇后问题; ...
在本题目中,我们面临的是一个关于 Java 编程的任务,目标是实现一个名为 `MyStack` 的类,该类需要实现 `Cloneable` 接口,并且支持深拷贝功能。深拷贝是一种复制对象的方式,它不仅复制对象本身,还复制对象引用的...
因为SUN的Stack不是严格意义上的stack,因此需要重写下,是这样的
MyStack<Integer> myStack = new MyArrayStack(); Integer result = num; while (true) { // 将余数入栈 myStack.push(result % n); result = result / n; if (result == 0) { break; } } ...
MyStack::MyStack(int size) { arr = new int[size]; if (arr == nullptr) { throw std::runtime_error("Memory allocation failed"); } top = -1; capacity = size; } MyStack::~MyStack() { delete[] arr;...
在`reverseStack`函数中,我们首先将`myStack`中的元素全部移至`tempStack`,然后将`tempStack`的元素回填到`myStack`。运行这段代码,原本为1, 2, 3的栈将会变成3, 2, 1,实现了栈的逆置。 至于提供的`text2.cpp`...
首先,我们创建了一个名为`myStack`的整数类型栈,通过`std::stack<int> myStack;`来实现。`std::stack`是C++标准库中的一个模板类,可以用来存储不同类型的数据,这里我们使用`int`类型作为例子。 接着,进行入栈...
std::cout 栈顶元素: " << myStack.top() ; } // 移除栈顶元素 myStack.pop(); // 遍历栈并输出内容(注意:通常不推荐这样遍历栈,因为它会破坏栈的结构) while (!myStack.empty()) { std::cout ...
这意味着我们可以创建不同类型的栈,例如`MyStack<Circle>`,`MyStack<String>`等,而无需为每种类型重复编写类。 使用泛型还有其他好处,如编译时的类型检查,防止了类型转换异常。当尝试将错误类型的对象放入或...
std::cout 栈未空,当前栈顶元素是:" << myStack.top() ; } return 0; } ``` **二、自定义栈结构** 如果你想要更深入理解栈的工作原理或者需要自定义栈的行为,可以自定义一个栈类。通常,这需要实现两个主要...