- •Полустатические cтруктуры данных.
- •Полустатические структуры данных характеризуются следующими признаками:
- •Стек
- •Стек
- •Операции над стеком
- •Cостояния стека
- •Реализация стека
- •Представление стека массивом
- •Проверить стек на наличие элементов
- •Проверка заполненности стека
- •Извлечение элемента
- •Добавление элемента
- •Пример
- •Реализация стека на основе
- •►int Full(Stack *p) //проверка стека на
- •►void Delete(Stack *p) //удаление
- •►void main()
- •►switch (n)
- •Представление стека динамической структурой
- •►Stack CreateStack(int n) //выделить
- •►bool isStackFull(const Stack &s) //
- •►void* Pop(Stack&s)
- •►bool Push(Stack&s, void* x)
- •►int ClearStack(Stack &s) // очистить стек
- •►void main()
- •►Stack CreateStack(const Stack&ps) // создать
- •Реализация стека на основе списка
- •► void Push(int dat, Stk *&Stmy) //Добавление
- •►void PrnS(Stk *&Stmy) //Вывод стека
- •►void main()
- •Применение двойных ссылок для реализации стека на основе односвязного списка
- •//Для добавления элемента в начало списка создается новый элемент:
- •//При извлечении элемента проверяется, не пустой ли стек:
- •►//Чтение элемента с вершины без извлечения:
- •последовательном удалении элементов, начиная с заголовка:
- •►void PrnSt(STACK **pSt) // вывод на экран
- •Стеки в вычислительных системах
Полустатические cтруктуры данных.
Стеки.
Полустатические структуры данных характеризуются следующими признаками:
►они имеют переменную длину и простые процедуры ее изменения;
►изменение длины структуры происходит в определенных пределах, не превышая какого-то максимального (предельного)
значения.
►Доступ к элементу может осуществляться по его порядковому номеру.
Стек
►Упорядоченный набор элементов в котором размещение новых элементов и удаление существующих производится с одного конца
►одномерная структура данных, загрузка или увеличение элементов для которой осуществляется с помощью указателя стека в соответствии с правилом LIFO (Last In First Out)
Стек
Операции над стеком
►Добавление в стек - push ►Удаление из стека – pop
►Прочитать элемент с вершины стека ( не извлекая) – peek
►Элементы в стеке любые
Список функций на языке С++ для работы со стеком:
►push() – добавить элемент; ►pop() – удалить элемент;
►top() – получить верхний элемент; ►size() – размер стека;
►empty () – проверить стек на наличие элементов.
Эти функции входят в стандартную
библиотеку C++ (STL), а именно в контейнер stack.
Cостояния стека
Реализация стека
►Статический - на базе массивов ►Динамический - на базе списков
Представление стека массивом
#include <iostream> |
|
using namespace std; |
//размер |
const int ms = 100; |
|
стека |
//данные |
char St[ms]; |
|
стека |
//вершина |
int top = -1; |
|
стека |
|
Проверить стек на наличие элементов
bool isStackEmpty(int top) //стек пуст?
{ return (top < 0);
}