Шаг 64.
Библиотека Qt.
Стек QStack<T>

    На этом шаге рассмотрим стек QStack<T>.

    Стек реализует структуру данных, работающую по принципу LIFO (Last In First Out, последним пришел — первым ушел), т. е. из стека первым удаляется элемент, который был вставлен позже всех остальных (рис. 1).


Рис.1. Принцип работы стека

    Класс QStack<T> представляет собой реализацию стековой структуры. Этот класс унаследован от класса QVector<T>. Процесс помещения элементов в стек обычно называется проталкиванием (pushing), а извлечение из него верхнего объекта — выталкиванием (poping).

    Каждая операция проталкивания увеличивает размер стека на 1, а каждая операция вытал кивания — уменьшает на 1. Для этих операций в классе QStack<T> определены методы push() и pop(). Метод top() возвращает ссылку на элемент вершины стека. Следующий пример демонстрирует использование класса стека.

QStack<int> stack;
QStack<int> num;
for(int i=1;i<=5;i++)
{
    stack.push(i*i);
    num.push(5-i+1);
}
while (!stack.empty())
{
    qDebug() << num.pop() << " элемент:" << stack.pop();
}


Рис.2. Результат работы программы

    Файлы приложения можно взять здесь.

    На следующем шаге рассмотрим очередь QQueue<T>.




Предыдущий шаг Содержание Следующий шаг