2016-10-26 15 views
-1

私は宿題に問題があります。そして私はあなたが私に与えることができるすべての助けが必要です。スタックをJavaで使用するスタック

どのタイプのデータも格納できるスタックと、Stack型の要素で動作するStackの組み合わせを作成する必要があります。私は非常に混乱しています。私は実装になっていた

方法は以下の通りであった。

initializeStack() のisEmpty() isFull() プッシュ() ポップ() に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; 
    } } 

すべてのメソッドはよく実装されています(自分のロジックを使用して)。

しかし、私はどのようにそれらのメソッドを使用してスタックのデータ型を使用してスタックを作ることができますか? 誰かが私を助けることができれば非常に感謝します。

また、元の問題があります。

少しスタックのスタック:データ構造の要素リトルスタックは、データの任意のタイプのものです。データ構造の要素スタックはスタック型です。 Javaでは

+0

「宿題の助けを求める質問は、あなたが問題を解決するために、これまでに行った作業の概要、そしてあなたはそれを解決抱えている困難についての説明を含める必要があります。」 https://www.tutorialspoint.com/javaexamples/data_stack.htm – MikeJRamsey56

答えて

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); 
    } 
} 

、彼らは今、何を行うことができますがvoid型のスタックを定義し、さまざまな種類のためにそれを型キャストされる。コレクションと呼ばれ、インクルードは、Cの標準テンプレートライブラリ(STL)++に類似しています要素。 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

+0

これが賛成し、投票した場合は助けてください;) – NeoR

関連する問題