2014-11-27 2 views
-1

Ваш стек должен быть поддержан массив объектов, которые должны быть изменены в случае, если она становится полнойЧто означает это предложение в терминах Java?

Я понимаю изменение размера массива и вещей, но я не совсем уверен, что я получаю то, что это означает, когда он говорит, что мой стек должен поддерживаться массивом?

Я реализующий интерфейс, как показано ниже, и я также попросил сделать выше,

public interface IStack { 
    public Object pop() throws StackEmptyException; 
    public void push(Object o); 
    public boolean isEmpty(); 
    public int size(); 
    public void clear(); 
} 
+1

Вы можете поделиться своим опытом? – Shrinath

+0

Это означает, что базовый компонент, содержащий элементы в вашем стеке, должен быть массивом. –

+0

Стек представляет собой абстрактную структуру данных. Он говорит, что он должен быть реализован внутренне с использованием массива. – August

ответ

4

Вы можете создать класс для представления стека, то есть список, который поддерживает стек операций, толчок и поп-музыки , и это то, что видит пользователь вашего «стека», но на самом деле вы программируете его, используя массив для хранения элементов. Если/Когда начальный массив заполнен, вы копируете содержимое в новый и больший массив, пользователь этого стека не будет более мудрым.

1

Это означает, что реализация вашего стека должна использовать массив для хранения данных. Вот пример для стека примитивного целого типа:

public class Stack { 
    int[] data; 
    int size; 

    public boolean push(int element) { 
     if (size == data.length) { 
      resize(); 
     } 
     data[size++] = element; 
    } 

    private void resize() { 
     //logic to increment/decrease the size of the array 
    } 
} 

Не указан в домашних заданиях, но я полагаю, ваш стек должен хранить любой тип объекта. Вы должны внести некоторые изменения в описанный выше подход, чтобы поддержать это требование (не делается, поскольку это означает решение вашей домашней работы).

1

Если вы реализуете стек, вам нужно место для хранения ваших данных. Поскольку у вас еще нет стека, вам нужно взять что-то еще, чтобы «вернуть» ваш стек. В этом случае массив.

0

Я считаю, что это часть вашего домашнего задания, и они хотят, чтобы вы реализовали стек, который поддерживает регулярные операции с стеком, такие как push и pop. Этот стек должен содержать элементы в частном члене, который является массивом.

Поскольку массивы не могут быть изменены в java, вам необходимо реализовать эту функциональность самостоятельно, например. создайте новый более крупный массив и скопируйте все элементы из старого массива в новый, когда малый массив заполнен.

Смежные вопросы