Назовите три стратегии для внутреннего хранения данных при реализации Stack ADT - PullRequest
0 голосов
/ 21 октября 2010

Это был вопрос, который мой учитель Data Structures поставил на нашем недавнем тесте. Я сразу подумал о List и Array, но я не могу представить себе третий ADT, который можно было бы использовать в качестве внутреннего хранилища для стека. Любая помощь?

Ответы [ 3 ]

0 голосов
/ 21 октября 2010

Список, массив, дерево, Graph

0 голосов
/ 21 октября 2010

Я думаю, что есть только 2 возможных способа реализовать очередь :

  • массив
  • связанный список

Третий путь, вероятно, будет смесью 2:

  • связанный список массивов.
0 голосов
/ 21 октября 2010

Связанный список является третьим вариантом.

class MyStack<T>
{
    LinkedList<T> linkedList = new LinkedList<T>();

    public void Push(T t)
    {
        linkedList.AddFirst(t);
    }

    public T Pop()
    {
        T result = linkedList.First.Value;
        linkedList.RemoveFirst();
        return result;
    }
}

Также возможно (но не всегда полезно) реализовать стек, используя две очереди .

...