
- •Визначувані типи
- •Опис визначуваного типу
- •Класифікація відомих визначуваних типів
- •Використання визначуваного типу
- •Підтипи
- •Перелічувані типи. 1
- •Перелічувані типи. 2
- •Об'єднаний тип
- •Складений тип
- •Рядковий тип
- •Представлення рядків
- •Представлення рядкового літерала в мові Pascal
- •Операції над рядковими знченнямив мові Pascal
- •Представлення рядкового літерала в мові с
- •Індексовані типи
- •Устрій одновимірних мультизначень
- •Устрій двовимірних мультизначень
- •Опис устрою мультизначення індексованого типу
- •Устрій паспорту індексованого типу
- •Приклади опису устрою індексованого типу. 1
- •Приклади опису устрою індексованого типу. 2
- •Індексатор
- •Основні властивості індексованих типів
- •Опис об'єктів індексованого типу. 1
- •Опис об'єктів індексованого типу. 2
- •Ініціалізація об'єктів індексованого типу
- •Ініціалізація при створенні об'єкту
- •Ініціалізація об'єкту оператором привласнення
- •Особливості індексованого типу в мові с.1
- •Особливості індексованого типу в мові с.2
- •Іменовані (комбіновані) типи
- •Механізм обробки значень іменованого типу
- •Відмінності в застосуванні іменованого та індексованого типів
- •Використання типізованих вказівних змінних іменованого типу
- •Спеціальний випадок використання типізованих вказівних змінних іменованого типу
- •Структури даних. Визначення
- •Структури даних. Визначення
- •Лінійні структури даних
- •Лінійний список
- •Лінійний список
- •Підходи до реалізації списку
- •Моделювання лінійного списку. 1
- •Векторне представлення лінійного списку. 1
- •Векторне представлення лінійного списку. 2
- •Векторне представлення стеку
- •Векторне представлення черги
- •Моделювання лінійного списку. 2
- •Зв’язане представлення черги. 2
- •Нелінійні структури даних
- •Представлення дерев
- •Устрій дерева як структури даних
- •Види дерев як структур даних
- •Моделювання дерева. Приклад 2
Використання типізованих вказівних змінних іменованого типу
-
Pascal:
type
struct = record
m_nA: integer;
m_cB: char; end;
var
ps : ^struct;
begin
new(ps);
ps^.m_cB := 'A' ;
ps^.m_nA := 10;
dispose(ps);
С:
struct record {
char m_cA;
int m_nB;
};
record *ps;
ps=new record;
ps->m_cA = 'A';
ps->m_nB = 10;
delete ps;
Спеціальний випадок використання типізованих вказівних змінних іменованого типу
Використання типізованих вказівних змінних іменованого типу в описі цього іменованого типу є єдиним випадком у мовах програмування, коли тип використовується, раніше ніж його описано.
-
Pascal:
type
pstruct = ^struct;
struct = record
m_cA : char;
m_nB : integer;
m_ps : pstruct;
end;
С:
struct record {
char m_cA;
int m_nB;
record *m_ps;
}
Структури даних. Визначення
Звичайно порядок розміщення значень у пам'яті або не становить інтересу для програміста (у разі скалярних значень програмних об'єктів скомпільованої програми), або ці значення є| компонентами мультизначення, і тоді порядок їх розміщення в пам'яті наперед визначений типом. Проте існує дуже широкий клас значень, розміщенням яких у пам'яті можна управляти єднаючи значення один з одним.
Вони називаються структурними (структурованими) даними, або структурами даних.
Як правило структури даних реалізуються на основі динамічного розподілу пам'яті в купі і називаються динамічними структурами даних.
Структури даних. Визначення
Структури даних можуть реалізовуватися і на основі визначуваних (іменованих, індексованих) типів у статичній або динамічній у стеку пам’яті|. Тоді вони називаються статичними.
Самостійного значення структури даних, як правило, не мають, однак вони лежать в основі абстрактних типів даних. Нині в середовищах програмування передбачається дуже широкий вибір реалізації абстрактних типів даних у вигляді модулів, класів, шаблонів, які базуються на структурах даних.
Структури даних ділять на два типи - лінійні і нелінійні.
Лінійні структури даних
В основі більшості лінійних структур даних покладено поняття лінійного списку.
Лінійний список – це впорядкована множина, яка складається з n-элементов (вузлів). Структурні властивості множини обмежуються лінійним положенням вузлів. Якщо n > 0, а X – список (множина вузлів), то х1 Î Х – перший вузол, а хn Î Х – останній вузол лінійного списку.
У вузлах списку є дві частини (поля). Перша частина, містить значення наперед визначених або раніше визначених типів. Обробка саме цих значень є метою програми. Друга частина містить значення-зв’язки (посилання), які пов’язують вузли між собою.