Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции С++.docx
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
6.95 Mб
Скачать

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

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

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

21.04.2012

cppNewb.ru 38

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

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

push_back pop_back push_front pop_front

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

(0,0)

(1,0)

(1,1)

(2,0)

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

Атд “матрица”

  • создание

  • уничтожение

  • получение доступа к элементу по индексу (i, j)

  • получение

размера по измерению

  • изменение

21.04.2012

размера по измерению

cppNewb.ru

41

Матрица (интерфейс класса)

Matrix(const int nRow, const int nCol); Matrix(const Matrix& matr);

~Matrix();

Matrix& operator=(const Matrix& rhs); int nRow() const;

int nCol() const;

T& at(const int iRow, const int iCol);

const T& at(const int iRow, const int iCol) const;

ostream& writeAsTxt(ostream& ostr) const;

21.04.2012

cppNewb.ru 42

Алгебраические операции

  • умножение на число

  • сложение двух матриц

  • умножение двух матриц

21.04.2012

cppNewb.ru 43

Дополнительные операции

  • транспонирование (для квадратной)

  • вставка/удаление столбца/строки

  • перестановка двух строк/столбцов

  • умножение на число строки/столбца

21.04.2012

cppNewb.ru 44

Способ представления

  • приведенный индекс

    • размеры

    • массив элементов

или

  • массив строк/столбцов

21.04.2012

cppNewb.ru 45

АТД “полином”

F(x)=a0·x0 + a1·x1 +…+ aN·xN

ai – коэффициент

i – показатель степени

(неотрицательное целое)

x – переменная

степень многочлена – максимальный показатель степени (для 0 не определен)

21.04.2012

cppNewb.ru 46

Операции с полиномом

  • создание (одночлен)

  • уничтожение

  • сложение полиномов

  • умножение полиномов

(в т.ч. умножение на число)

  • вычисление значения

21.04.2012

cppNewb.ru 47

Дополнительные операции

  • получение коэффициента при заданном показателе степени

21.04.2012

cppNewb.ru 48

Представление полинома

  • массив an, n=0,N

  • массив пар {n,an}

  • список пар {n,an}

21.04.2012

cppNewb.ru 49

Оптимизация

  • выбор способа хранения в зависимости от разреженности и размерности

  • для разреженных – хранение в упорядоченном виде (поддержание упорядоченности при вставке членов)

21.04.2012

cppNewb.ru 50

Дерево

(иллюстрация)

a

<

b

a

<

e

a

<

f

b

<

c

b

<

d

листья

c d e f

b

a корень

〈a, 〈b, 〈c〉, 〈d〉〉, 〈e〉, 〈f〉〉

21.04.2012

cppNewb.ru 51