Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

polevoy_cpp_2012_spring_lecture_11

.pdf
Скачиваний:
5
Добавлен:
20.04.2015
Размер:
204.11 Кб
Скачать

Стек (линейный список массив)

вершина

T& getTop()

{

assert(0 != m_pHead);

return m_pHead->m_data;

}

21.04.2012

cppNewb.ru

31

АТД “очередь”

динамическая структура данных

упорядоченный набор элементов

FIFO (First In First Out) – добавление

элементов с одного конца (хвост) и удаление с другого конца (голова)

21.04.2012

cppNewb.ru

32

Очередь - операции

создание

уничтожение

добавление элемента

удаление элемента

получение значение верхнего элемента

21.04.2012

cppNewb.ru

33

Очередь (схема работы)

голова

getTop

push

хвост

21.04.2012

cppNewb.ru

34

Очередь (интерфейс класса)

Queue()

Queue(const Queue& obj) ~Queue()

Queue& operator=(const Queue& rhs) void push(const T& obj)

void pop()

bool isEmpty() const T& getTop()

const T& getTop() const

или

T getTop()

21.04.2012

cppNewb.ru

35

Очередь – реализация

динамический массив (вставка и извлечение с концов)

динамический массив (подвижные концы)

список

21.04.2012

cppNewb.ru

36

Очередь (подвижные концы)

iTail = (iTail + 1) % size; // push

iHead = (iHead + 1) % size; // pop

size – размер буфера

iHead

iTail

21.04.2012

cppNewb.ru

37

Очередь с приоритетом

<ключ, данные>

порядок извлечения элементов определяется ключом, а не порядком добавления элементов в очередь

21.04.2012

cppNewb.ru

38

Дэк (двусвязная очередь)

добавление и извлечение элементов возможна с обоих концов

push_back

pop_back push_front pop_front

21.04.2012

cppNewb.ru

39

Матрица (в математике)

Ма трица— математический объект, записываемый в виде прямоугольной таблицы чисел и допускающий алгебраические операции (сложение, вычитание, умножение)

между ним и другими подобными объектами.

Обычно матрицы представляются двумерными (прямоугольными) таблицами.

(0,0)

(1,0) (1,1)

21.04.2012

cppNewb.ru

(2,0)

40