我的作业有问题。我需要你能给我的所有帮助。
我需要创建一个可以存储任何类型数据的堆栈和一个使用Stack类型元素的Stack的组合。我很困惑。
我应该实施的方法是:
initializeStack() 是空的() 已满() 推() POP() showStack() countElements()
这就是我到目前为止所做的:
public class pilita {
Object vectorPila[];
int tope;
public pilita(int tam){
vectorPila=new Object[tam];
tope=-1;
}
public void inicializarPila(){
tope=-1;
}
public void push(Object dato){
tope++;
vectorPila[tope]=dato;
}
public Object pop(){
Object fuera=vectorPila[tope];
tope--;
return fuera;
}
public boolean pilaVacia(){
return tope==-1;
}
public boolean pilaLlena(){
return vectorPila.length-1==tope;
}
public Object cima(){
return vectorPila[tope];
}
public Object contar(){
return tope+1;
} }
所有方法都得到了很好的实现(使用我的逻辑)。
但是如何使用这些方法使用堆栈数据类型创建堆栈? 如果有人能帮助我,我将非常感激。
这也是最初的问题。
堆叠小堆栈:数据结构小堆栈的元素属于任何类型的数据。数据结构堆栈的元素属于堆栈类型。
答案 0 :(得分:0)
// Java code for stack implementation
import java.io.*;
import java.util.*;
class Test
{
// Pushing element on the top of the stack
static void stack_push(Stack<Integer> stack)
{
for(int i = 0; i < 5; i++)
{
stack.push(i);
}
}
// Popping element from the top of the stack
static void stack_pop(Stack<Integer> stack)
{
System.out.println("Pop :");
for(int i = 0; i < 5; i++)
{
Integer y = (Integer) stack.pop();
System.out.println(y);
}
}
// Displaying element on the top of the stack
static void stack_peek(Stack<Integer> stack)
{
Integer element = (Integer) stack.peek();
System.out.println("Element on stack top : " + element);
}
// Searching element in the stack
static void stack_search(Stack<Integer> stack, int element)
{
Integer pos = (Integer) stack.search(element);
if(pos == -1)
System.out.println("Element not found");
else
System.out.println("Element is found at position " + pos);
}
public static void main (String[] args)
{
Stack<Integer> stack = new Stack<Integer>();
stack_push(stack);
stack_pop(stack);
stack_push(stack);
stack_peek(stack);
stack_search(stack, 2);
stack_search(stack, 6);
}
}
在Java中,它们被称为集合,它们类似于C ++的标准模板库(STL)。现在,您可以做的是定义一个void类型堆栈并对各种类型的元素进行类型转换。
在c中,stack.h具有以下堆栈结构
typedef struct{
void *elems;
int elemSize;
int allocLength;
int logLength;
void (*freefnc)(void *);
} Stack;
void stackNew(Stack *s, int elemSize, void (*freefnc)(void *));
void stackDispose(Stack *s);
void stackPush(Stack *s, void *elemAddr);
void stackPop(Stack *s, void *target);
您可以在此处了解更多相关信息: -
http://www.geeksforgeeks.org/java/(参见java中的集合)
http://www.geeksforgeeks.org/c-plus-plus/#STL(参见标准模板库(STL))
用于在java中定义void类型泛型,请参阅: -
What's the difference between Void and no parameter?
https://coderanch.com/t/450693/java/pass-void-generic-parameter-type