Skip to content

Commit 7e08a23

Browse files
committed
Added tickets 16, 22-25
1 parent 6a7ca8c commit 7e08a23

File tree

5 files changed

+277
-10
lines changed

5 files changed

+277
-10
lines changed

slides/ticket16.md

+27-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Экзаменационный билет №16
22

3+
## 1.Адаптивная оценка параметров модели в ходе выполнения программ (на примере системы управления несколькими стеками).
34

4-
## 1. Адаптивная оценка параметров модели в ходе выполнения программ (на примере системы управления несколькими стеками).
5-
## 2. Оценка сложности обработки деревьев поиска. Понятие сбалансированных и идеально сбалансированных деревьев поиска.
5+
![](../pictures/ticket16-1.png)
6+
7+
![](../pictures/ticket16-1.png)
8+
9+
## 2. Оценка сложности обработки деревьев поиска. Понятие сбалансированных и идеально сбалансированных деревьев поиска.
10+
11+
Дерево является идеально сбалансированным если для каждого его узла количество узлов в левом и правом поддеревьях различаются не более чем на 1.
12+
Дерево является сбалансированным,если для каждого узла высота левого и правого поддеревьев различаются не более,чем на 1(АВЛ-деревья).
13+
Идеально сбалансированные деревья являются сбалансированными.Операции обработки сбалансированных деревьев имеют сложность log2N.(поиск,вставка,удаление)
14+
Тmin=1
15+
Tmax=log2N(при сбалансированном дереве)
16+
Tmax=N(при вырожденном дереве)
17+
18+
![](../pictures/ticket16-3.png)
19+
20+
![](../pictures/ticket16-4.png)
21+
22+
![](../pictures/ticket16-5.png)
23+
24+
![](../pictures/ticket16-6.png)
25+
26+
![](../pictures/ticket16-7.png)
27+
28+
![](../pictures/ticket16-8.png)
29+
30+
![](../pictures/ticket16-9.png)

slides/ticket22.md

+54-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
11
# Экзаменационный билет №22
22

3-
43
## 1. Способы агрегации графических объектов (группирование и конструирование).
5-
## 2. Сравнение структур хранения линейных и динамических структур данных.
4+
5+
**Агрегация** – это абстракция, которая превращает связь между объектами в некоторый агрегированный объект.
6+
7+
### Группирование
8+
9+
**Составной объект** - набор геометрических объектов (как базовых так и составных), рассматриваемых при выполнении операций обработки как единый объект\
10+
11+
```C++
12+
class TChartGroup : public TChartRoot
13+
{
14+
protected:
15+
TDatList Group; // Список объектов
16+
public:
17+
TChartGroup() { }
18+
void InsUnit(TChartRoot *pUnit); // Добавление
19+
virtual void Show(); // Визуализация
20+
virtual void Hide(); // Скрытие
21+
virtual void CalcParams(double t = -1); // Пересчет параметров
22+
};
23+
```
24+
25+
### Конструирование
26+
27+
**Геометрический объект** может быть сконструирован с использованием уже существующих объектов
28+
29+
- например, ломаная может быть определена через набор конечных точек составляющих отрезков
30+
31+
```C++
32+
class TChartPolyline : public TChartGroup
33+
{
34+
public:
35+
TChartPolyline() { }
36+
void InsPoint(TChartRoot *pUnit); // Добавление
37+
virtual void Show(); // Визуализация
38+
virtual void Hide(); // Скрытие
39+
virtual void CalcParams(double t = -1); // Пересчет параметров
40+
};
41+
```
42+
43+
## 2. Сравнение структур хранения линейных и динамических структур данных.
44+
45+
### Линейные структуры
46+
47+
- Базисное множество - множество элементов
48+
- Базисное отношение - отношение следования
49+
- В структуре хранения хранятся все элементы структуры
50+
- Отношение следования реализуется при помощи адресной арифметики
51+
52+
### Динамические структуры
53+
54+
- Элементы базисного множества являются структурами (ДС - структуры структур)
55+
- Базисное отношение - отношение включения
56+
- В структуре хранения хранится только текущий элемент
57+
- Отношение включения реализуется при помощи программ

slides/ticket23.md

+54-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
11
# Экзаменационный билет №23
22

3-
43
## 1. Способы агрегации графических объектов (группирование и конструирование).
5-
## 2. Сравнение структур хранения линейных и динамических структур.
4+
5+
**Агрегация** – это абстракция, которая превращает связь между объектами в некоторый агрегированный объект.
6+
7+
### Группирование
8+
9+
**Составной объект** - набор геометрических объектов (как базовых так и составных), рассматриваемых при выполнении операций обработки как единый объект\
10+
11+
```C++
12+
class TChartGroup : public TChartRoot
13+
{
14+
protected:
15+
TDatList Group; // Список объектов
16+
public:
17+
TChartGroup() { }
18+
void InsUnit(TChartRoot *pUnit); // Добавление
19+
virtual void Show(); // Визуализация
20+
virtual void Hide(); // Скрытие
21+
virtual void CalcParams(double t = -1); // Пересчет параметров
22+
};
23+
```
24+
25+
### Конструирование
26+
27+
**Геометрический объект** может быть сконструирован с использованием уже существующих объектов
28+
29+
- например, ломаная может быть определена через набор конечных точек составляющих отрезков
30+
31+
```C++
32+
class TChartPolyline : public TChartGroup
33+
{
34+
public:
35+
TChartPolyline() { }
36+
void InsPoint(TChartRoot *pUnit); // Добавление
37+
virtual void Show(); // Визуализация
38+
virtual void Hide(); // Скрытие
39+
virtual void CalcParams(double t = -1); // Пересчет параметров
40+
};
41+
```
42+
43+
## 2. Сравнение структур хранения линейных и динамических структур данных.
44+
45+
### Линейные структуры
46+
47+
- Базисное множество - множество элементов
48+
- Базисное отношение - отношение следования
49+
- В структуре хранения хранятся все элементы структуры
50+
- Отношение следования реализуется при помощи адресной арифметики
51+
52+
### Динамические структуры
53+
54+
- Элементы базисного множества являются структурами (ДС - структуры структур)
55+
- Базисное отношение - отношение включения
56+
- В структуре хранения хранится только текущий элемент
57+
- Отношение включения реализуется при помощи программ

slides/ticket24.md

+74-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,77 @@
11
# Экзаменационный билет №24
22

3-
43
## 1. Деревья поиска. Алгоритмы поиска и вставки.
5-
## 2. Алгоритм копирования текста.
4+
5+
![](../pictures/ticket24-1.png)
6+
7+
- поиск в дереве поиска – рекурсия. PTTreeNode
8+
9+
```C++
10+
FindRecord(TKey k, PTTreeNode pNode)
11+
{
12+
if (pNode != NULL)
13+
{ // лист
14+
if (pNode->Key < k) // вправо
15+
pNode = FindRecord(k, pNode->Right);
16+
if (pNode->Key > k) // влево
17+
pNode = FindRecord(k, pNode->Left);
18+
}
19+
return pNode;
20+
}
21+
```
22+
23+
![](../pictures/ticket24-2.png)
24+
25+
Введение барьера.
26+
27+
- поиск в дереве поиска – рекурсия PTTreeNode
28+
29+
```C++
30+
FindRecord(TKey k, PTTreeNode pNode)
31+
{
32+
if (pNode->Key < k) // вправо
33+
pNode = FindRecord(k, pNode->Right);
34+
if (pNode->Key > k) // влево
35+
pNode = FindRecord(k, pNode->Left);
36+
return (pNode == pBarrier) ? NULL : pNode;
37+
}
38+
```
39+
40+
![](../pictures/ticket24-3.png)
41+
42+
- Поиск до тупика и вставка
43+
44+
```C++
45+
void TTreeTable ::InsRecord(TKey k, PTDatValue pVal)
46+
{ // вставить запись
47+
if (IsFull())
48+
SetRetCode(TabFull);
49+
else if (FindRecord(k) != NULL)
50+
SetRetCode(TabRecDbl);
51+
else
52+
{
53+
SetRetCode(TabOK);
54+
\*ppRef = new TTreeNode(k, pVal);
55+
DataCount++;
56+
}
57+
}
58+
```
59+
60+
## 2. Алгоритм копирования текста.
61+
62+
- Для копирования текста необходимо предварительно скопировать разделы текста, на которые указывают pDown и pNext, алгоритмы NDT или DNT.
63+
- Для навигации по тексту-копии также необходим стек
64+
- использование стеков исходного текста и текста-копии должны быть согласованы
65+
- Для навигации по исходному тексту и тексту-копии используется один объединенный стек
66+
- Каждое звено стека копируется в 2 прохода
67+
- 1 проход - при подъеме из подуровня (pDown)
68+
- создание копии звена
69+
- заполнение поля pDown (подуровень уже скопирован)
70+
- запись в поле Str значения Copy
71+
- для распознания звена при попадании на него во втором проходе
72+
- запись в поле pNext указателя на звено-оригинал
73+
- для возможности дальнейшего копирования текста исходной строки
74+
- запись указателя на звено-копию в стек
75+
- 2 проход - при извлечении звена из стека
76+
- заполнение полей Str и pNext
77+
- указатель на звено-копию запоминается в переменной cpl

slides/ticket25.md

+68-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,71 @@
11
# Экзаменационный билет №25
22

3-
43
## 1. Алгоритм обхода плекса.
5-
## 2. Линейные структуры данных.
4+
5+
### Алгоритм 1 - общая схема алгоритма обхода для плекса
6+
7+
- переход на крайнюю левую точку
8+
- подъем по плексу
9+
- пока стек не пуст, достаем точки траектории и рисуем линии
10+
11+
```C++
12+
while (pN (не принадлежит) TChartPoint)
13+
{
14+
St.push(pN);
15+
pN = pN->GetFirstPoint();
16+
}
17+
//подъем по плексу и рисование
18+
pF = pN;
19+
while (!St.Empty())
20+
{
21+
pN = St.top();
22+
St.Pop();
23+
pL = pN->GetLastPoint(); //рисование линии<pN, pF, pL>
24+
pF = pL;
25+
}
26+
```
27+
28+
### Алгоритм 2 - рекурсивный вариант
29+
30+
- Линии, определяемые при обходе плекса, помещаются в стек
31+
- При линии, извлекаемой из стека, последовательно определяются начальная и конечная точки
32+
- Для определения начальной точки используется метод GetFirstPoint линии
33+
- Если получаемый указатель указывает на линию, обработка текущей линии откладывается (линия помещается в стек) и начинается анализ новой линии
34+
- данная процедура выполняется итеративно до получения линии, с которой начали.
35+
36+
```C++
37+
TChartPoint *Show(TChart *pN)
38+
{
39+
if (pN != NULL)
40+
pL = NULL;
41+
else if (pN (принадлежит) TChartPoint)
42+
pL = pN;
43+
else
44+
{
45+
pF = Show(pN->GetFirstPoint());
46+
pL = Show(pN->GetLastPoint()); //рисование линии <pN,pF,pL>
47+
}
48+
return pN;
49+
}
50+
```
51+
52+
## 2. Линейные структуры данных.
53+
54+
**Линейные структуры данных** - структуры, которым соответствует ориентированный граф с вершинами, лежащими на одной ломаной
55+
56+
**Линейные структуры данных** - упорядоченные структуры, в которых адрес элемента однозначно определяется его номером
57+
58+
Свойства:
59+
60+
- каждый элемент имеет не более 1 предшественника
61+
- 2 разных элемента не могут иметь одинакового последователя
62+
63+
Примеры линейных структур:
64+
65+
- Массивы
66+
- динамические массивы
67+
- Связный список
68+
- Стек
69+
- Очередь
70+
- Дек
71+
- Хеш-таблицы

0 commit comments

Comments
 (0)