Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(1)АСД курс / 1_semestr_lection / Lection03_Структури даних С шарп.pdf
Скачиваний:
42
Добавлен:
06.02.2016
Размер:
169.3 Кб
Скачать

Различия в них в том, что первая структура данных будет работать с производными от класса Object, тогда как вторая принимает только определённый тип данных.

Вот код C#, для добавления и извлечения данных из стека:

01

 

Stack<string> stack = new Stack<string>();

 

02

 

stack.Push("1");

03

 

stack.Push("2");

04

 

stack.Push("3");

05

 

 

06

 

while (stack.Count > 0)

07

 

{

08

 

MessageBox.Show(stack.Pop());

09

 

}

10

 

</string></string>

Если запустить этот код, то увидите, что список возвращён в следующем порядке: 3, 2, 1.

1.9 Queue и Queue<>(очередь).

Очередь - ещё одна из многих структур данных в C#. Очередь очень похожа на стек, но есть одно важное отличие. Вместо того, чтобы следовать алгоритму LIFO, очередь следует алгоритму FIFO, что расшифровывается как First-In-First-Out (первый пришёл - первый обслужен). К примеру, когда вы отправляете статью для утверждения на сайт, то там она добавляется в очередь на утверждение. Таким образом, объекты, добавленные первыми, первыми будут и обработаны.

Добавление элемента в очередь (аналогичено Push для стека) осуществляется методом Enqueue:

1 queue.Enqueue("1");

Извлечение элемента - методом Dequeue:

1 queue.Dequeue();

Аналогично, метод Peek позволяет просмотреть верхнее значение в очереди, не удаляя его. Эта специфическая структура данных очень часто используется в связке со стеком.

Вот простой код для добавления и извлечения данных из очереди:

01

 

Queue<string> queue = new Queue<string>();

 

 

02

 

queue.Enqueue("1");

 

 

03

 

queue.Enqueue("2");

 

 

04

 

queue.Enqueue("3");

 

 

05

 

 

 

 

06

 

while (queue.Count > 0)

 

 

07

 

{

 

 

08

 

MessageBox.Show(queue.Dequeue());

 

 

09

 

}

 

 

10

 

</string></string>

 

 

Также имейте ввиду, что очередь, как и стек, может быть определена как любого

типа данных (Queue), так и только для одного типа (Queue<>).

Соседние файлы в папке 1_semestr_lection