Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Статичні структури даних.

Статичні структури відносяться до розряду непримітивних структур, які, фактично, є структурованою безліччю примітивних, базових, структур.

Вектор (одновимірний масив) - структура даних з фіксованим числом елементів одного і того ж типа типа. Кожен елемент вектора має унікальний в рамках заданого вектора номер. Звернення до елементу вектора виконується по імені вектора і номеру необхідного елементу.

Машинне представлення. Адресація елементів структур.

Елементи вектора розміщуються в пам'яті в підряд розташованих елементах пам'яті. Під елемент вектора виділяється кількість байт пам'яті, визначуване базовим типом елементу цього вектора. Необхідне число байтів пам'яті для зберігання одного елементу вектора називається слотом. Розмір пам'яті для зберігання вектора визначається твором довжини слота на число елементів.

У мовах програмування вектор представляється одновимірним масивом з синтаксисом опису вигляду (PASCAL):

< Ім'я > : array [n..k] of < тип >;

де n-номер першого елементу, до-номер останнього елементу.

У мовах, де пам'ять розподіляється до виконання програми на етапі компіляції (C, PASCAL, FORTRAN), при описі типа вектора граничні значення індексів повинні визначені. У мовах, де пам'ять може розподілятися динамічно (ALGOL, Pl/1), значення індексів можуть бути задані під час виконання програми.

Кількість байтів безперервної області пам'яті, зайнятих одночасно вектором, визначається по формулі:

Bytesise = ( до - n + 1 ) * Sizeof (тип)

Звернення до i-тому елементу вектора виконується за адресою вектора плюс зсув до даного елементу. Зсув i-ого елементу вектора визначається по формулі:

Bytenumer = ( i- n ) * Sizeof (тип)

а адреса його: @ Bytenumber = @ ім'я + Bytenumber.

де @ ім'я - адреса першого елементу вектора.

Наприклад:

var Мas: array [ 5..10 ] of word.

Базовий тип елементу вектора - Word вимагає 2 байти, тому на кожен елемент вектора виділяється по два байти.

Масив - така структура даних, яка характеризується:

· фіксованим набором елементів одного і того ж типа;

· кожен елемент має унікальний набір значень індексів;

· кількість індексів визначають мірна масиву, наприклад, два індекси - двовимірний масив, три індекси - тривимірний масив, один індекс - одновимірний масив або вектор;

· звернення до елементу масиву виконується по імені масиву і значенням індексів для даного елементу.

Інше визначення: масив - це вектор, кожен елемент якого - вектор.

Синтаксис опису масиву представляється у вигляді:

< Ім'я > : Array [n1..k1] [n2..k2] .. [nn..kn] of < Тип >.

Для випадку двовимірного масиву:

Mas2d : Array [n1..k1] [n2..k2] of < Тип >, або

Mas2d : Array [n1..k1, n2..k2] of < Тип >

Наочно двовимірний масив можна представити у вигляді таблиці з (k1-n1+1) рядків і (k2-n2+1) стовпців.

Безліч - така структура, яка є набором даних одного і того ж типа, що не повторюються. Безліч може набувати всіх значень базового типа. Базовий тип не повинен перевищувати 256 можливих значень. Тому базовим типом безлічі можуть бути byte, char і похідні від них типи.

Фізична структура.

Безліч в пам'яті зберігається як масив бітів, в якому кожен біт вказує чи є елемент таким, що належить оголошеній безлічі чи ні. Т.ч. максимальне число елементів безлічі 256, а дані типа безліч можуть займати не більш 32 байт.

Число байтів, що виділяються для даних типа безліч, обчислюється за формулою: Bytesize = (max div 8)-(min div 8)+ 1, де max і min - кордони верху і нижньої базового типа даної безлічі.

Номер байта для конкретного елементу Е обчислюється за формулою:

Bytenumber = (E div 8)-(min div 8)

номер біта усередині цього байта по формулі:

Bitnumber = E mod 8

Запис - кінцева впорядкована безліч полів, що характеризуються різним типом даних. Записи є надзвичайно зручним засобом для представлення програмних моделей реальних об'єктів наочної області, бо, як правило, кожен такий об'єкт володіє набором властивостей, що характеризуються даними різних типів.

Приклад запису - сукупність відомостей про деякого студента.

Об'єкт "студент" володіє властивостями:

"особистий номер" - характеризується цілим позитивним числом

"прізвище-ім'я-по батькові" - характеризується рядком символів і так далі.

Коли йшлося про записи, було відмічено, що полями запису можуть бути інтегровані структури даних - вектори, масиви, інші записи. Аналогічно і елементами векторів і масивів можуть бути також інтегровані структури. Одна з таких складних структур - таблиця. З фізичної точки зору таблиця є вектором, елементами якого є записи. Характерною логічною особливістю таблиць є те, що доступ до елементів таблиці виробляється не по номеру (індексу), а по ключу - за значенням однієї з властивостей об'єкту, що описується записом-елементом таблиці. Ключ - це властивість, що ідентифікує даний запис в безлічі однотипних записів. Як правило, до ключа пред'являється вимога унікальності в даній таблиці. Ключ може включатися до складу запису і бути одним з її полів, але може і не включатися в запис, а обчислюватися по положенню запису. Таблиця може мати один або декілька ключів. Наприклад, при інтеграції в таблицю записів про студентів (опис запису приведений в п.3.5.1) вибірка може вироблятися як по особистому номеру студента, так і по прізвищу.

Основною операцією при роботі з таблицями є операція доступу до запису по ключу. Вона реалізується процедурою пошуку. Оскільки пошук може бути значно ефективнішим в таблицях, впорядкованих по значеннях ключів, досить часто над таблицями необхідно виконувати операції сортування. Ці операції розглядаються в наступних розділах даної глави.

Інколи розрізняють таблиці з фіксованою і із змінною довжиною запису. Вочевидь, що таблиці, об'єднуючі записи абсолютно ідентичних типів, матимуть фіксовані довжини записів. Необхідність в змінній довжині може виникнути в завданнях, подібних тим, які розглядалися для записів з варіантами. Як правило таблиці для таких завдань і складаються із записів з варіантами, тобто зводяться до фіксованої (максимальною) довжини запису. Значно рідше зустрічаються таблиці з дійсно змінною довжиною запису. Хоча в таких таблицях і економиться пам'ять, але можливості роботи з такими таблицями обмежені, оскільки по номеру запису неможливо визначити її адресу. Таблиці із записами змінної довжини обробляються лише послідовно - в порядку зростання номерів записів. Доступ до елементу такої таблиці зазвичай здійснюється в два кроки. На першому кроці вибирається постійна частина запису, в якому міститься, - в явному або неявному вигляді - довжина запису. На другому кроці вибирається змінна частина запису відповідно до її довжини. Додавши до адреси поточного запису її довжину, отримують адресу наступного запису.

Так таблиця із записами змінної довжини може, наприклад, розглядатися в деяких завданнях програмованих в машинних кодах. Кожна машинна команда - запис, складається з одного або декількох байт. Перший байт - завжди код операції, кількість і формат решти байтів визначається типом команди. Процесор вибирає байт за адресою, що задається програмним лічильником, і визначає типа команди. За типом команди процесор визначає її довжину і вибирає останні її байти. Вміст програмного лічильника збільшується на довжину команди.

Уявлення в пам’яті машини множин; операції над множинами. Уявлення графів. Дерева і бінарні дерева. Характеристики дерев. Ліс. Уявлення бінарних дерев. Перехід від дерева до бінарного дерева.




Переглядів: 2512

<== попередня сторінка | наступна сторінка ==>
НЕЛІНІЙНІ СТРУКТУРИ ДАНИХ | Множини. Опис множин, операції над множинами.

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.006 сек.