КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Общата концепция на структурата на данните




Концепцията на структурата на данните е толкова основно, че е трудно да се избере проста дефиниция за него. Задачата е по-лесно, ако се опитате да се формулира това понятие по отношение на типовете данни и променливи. Както знаете, програмата е единство алгоритъм (процедури, функции) и данни да бъдат обработвани от тях. Те, от своя страна, се определя от основни и производни типове данни - "перфектен" представяне на променлива фиксирана величина с набор от известни операции по тях и техните компоненти. Променлива е наречена зона на памет, в която "вижда", построени типове данни.
В програмата винаги можете да се подчертае групата косвено (за използване на данни в едни и същи процедури и функции) и пряко свързан (чрез наличието на връзки чрез указатели) променливи. Първият им сближаване и може да се разглежда като структури от данни.

Има прости (основни, примитивни) модели (видове) на данни и интегриране (структурирана, композитен, комплекс). Той нарече прости структури от данни, които не могат да бъдат разделени на съставните му части по-голям от бита. От гледна точка на физическата структура е важно да се на факта, че в архитектурата на машината, ние винаги може да каже предварително в системата за програмиране, какъв ще бъде размерът на прост тип настаняване и каква е неговата структура в паметта. От логическа гледна точка на прости данни са неделими единици. Наречен интегрирани структури от данни, които са неразделна част от други структури от данни - прости или интегрирани в завой. Интегрирани информационни структури, построени от програмист с използването на интеграция на данни, предлагани от езиците за програмиране.

В зависимост от наличието или отсъствието на изрични връзки между тези елементи е необходимо да се прави разлика между несвързани структури (вектори, масиви, стрингове, стекове, опашки) и свързани структури (свързани списъци).

Много важна характеристика на структурата на данните - променливостта му - промени в броя на елементите и (или) на връзките между елементите на конструкцията. При определяне на структурата не отразява вариабилност в действителност промяна на стойностите на елементите на данните, тъй като в този случай всички структури от данни ще имат вариабилност имот. Въз основа на вариабилност разграничи статични структури, полу-статичен, динамичен. Класификация на структури от данни въз основа на вариант е показан на фиг. 1.1. Основни структури от данни, статичен, полу-статична и динамична характеристика на RAM и често се наричат ​​оперативните структури. Файлови структури отговарят на структурите от данни на външна памет.




Фиг. 1.1. Класификация на структурите от данни

Важна характеристика на структурата на данните - естеството на подреждането на елементите. Въз основа на структурата може да бъде разделена на линейни и нелинейни структура.

В зависимост от взаимното подреждане на елементи в линейна структура на паметта може да бъде разделен на поредица от модели за разпространение в елементите на паметта (вектори, низове, масиви, стекове, опашки) и разпределение структура с произволна свързани елементи памет (просто свързани, двойно-свързани списъци). Пример за нелинейни структури - умножение списъци, дървета, графики.

В езиците за програмиране, понятието "структура от данни" е тясно свързана с концепцията за "типове данни". Всички данни, които е константи, променливи, ценности или изразяване на функции, характеризиращи се с техните видове.

Информация за всеки тип еднозначно определя:

· 1) на съхранение тип структура, т.е. памет разпределение и отчитане от една страна, и тълкуването на двоичното представяне на другия;

· 2) набор от валидни стойности, което може да бъде даден обект от типа, описан;

· 3) множеството от допустимите дейности, които са приложими към обекта от типа, описан.

СТРУКТУРА НА ДАННИ - комбинация от физически (типове данни) и логически (алгоритъм, функция) от взаимосвързани променливи и техните стойности.

Имайте предвид, че концепцията за структурата на данните е от значение не само за променливите, които го съставят, но и алгоритми (функции), които са не само логически променливи, свързани един с друг, но също и за определяне на вътрешните стойности, които също трябва да се характеризират с това структурата на данните. Например, последователност на положителни стойности, и се поставя в матрица с променливи размери (Структура данни) могат да имат нула терминатор. Всички операции по формирането и проверка на тази ограничител функции се изпълняват. По този начин, може да се каже, че значителна част от структурата на данните "зашити" в своите алгоритми за обработка.
Най-известният метод ние се определи чрез типовете данни на променливи се характеризира с това, че, от една страна, броят на променливите в програмата е фиксиран, и второ, техните размери могат да се променят по време на изпълнение. Ако връзката между тези променливи имат повече или по-малко постоянен характер, структури такива данни могат да бъдат наречени статични.

STATIC структура от данни - зададете фиксиран брой променливи постоянни с измерение от същото естество на връзките между тях
И обратното, ако един от тези параметри е броят на променливите, структури, тяхното измерение или на връзката между промяната в работната програма, структурите от данни се наричат ​​динамични.

Динамично разпределяне на структури от данни - набор от променливи, броя, размера и характера на взаимоотношенията между тези промени в работните програми.

Динамични структури от данни се базират на два елемента на езика за програмиране:

· Dynamic променлива, чийто брой може да варира и в крайна сметка се определя от програмата. В допълнение, възможността за създаване на динамични масиви подсказва тези различни размери;

· Признаци, които осигуряват пряка връзка на данни и възможност за промяна на тези връзки.

По този начин, близо до истината, и такова определение: динамична структура от данни е динамично променливи и масиви, свързани указатели.
Говорейки на структури от данни, не трябва да забравяме, че редовните променливи са поставени в RAM (вътрешна памет на компютъра). Следователно, структури от данни, и обикновено са свързани с паметта. Въпреки това, има и външна памет, която е на разположение на езика индиректно чрез оператори (Pascal) или функция (C), работа с файлове. В двоичен файл, случаен режим на достъп на всеки файл е аналог на неограничено право на адресируем памет, това е, от гледна точка на програмата изглежда точно като редовен памет. Естествено, програмата може да бъде копиран от променливите памет в произволно място на файлове и обратно, и по този начин да се организира всеки файл (включително динамично) структура на данните.
Структурата на данни - един изпълнител, който организира работата с данните, включително неговото съхранение, добавяне и премахване, промяна, търсене и т.н. Структурата на данни поддържа определен ред за достъп до тях. структура на данните може да се разглежда като един вид склад или библиотека. При описване на данните структури трябва да се изброят набор от действия, които са достъпни за него, и ясно описание на резултатите от всяко действие. Ние наричаме тези регламенти. От гледна точка на софтуер оглед на структурата на системата данни съответства на изискванията, определени от функции, които работят на споделени променливи.
Структури от данни са най-удобно да изпълняват в обектно-ориентирани езици. В тях, структурата на данните съответства на клас, данните, съхранявани в член-променливи (или достъп до данните чрез променливи на потребителя), системата отговаря на изискванията, определени от методи на клас. Като правило, в обектно-ориентирани езици, структури от данни се изпълняват като библиотека от стандартни класове: така наречените контейнерни класове на ++ езика C, включени в стандартните класове библиотека STL, или класовете, които реализират различни структури от данни на Java Kit Developer Java език библиотека.
Въпреки това, като структурата на данните може да се прилага успешно в традиционните програмни езици като C или Fortran. Така че е необходимо да се придържат към обектно-ориентираното програмиране стил: ясно идентифициране на набор от функции, които изпълняват работата с структурата на данните, както и за ограничаване на достъпа само до данните на този набор от функции. Самите данни се реализира като статичен (не-глобалните) променливи. При програмиране на C структура език данни съответства на две изходни файлове:
1. В заглавната част, или структурата на данните з-файл, който описва един интерфейс, т.е. набор от функционални прототипи, структури от данни, съответстващи на изискванията на системата;
2. Изпълнението на файла, или C-файл, който определя статични променливи, съхраняването и достъпа до данни и функции се изпълняват изискванията за структурата на данните съответната система
Структурата на данни обикновено се осъществяват по един по-прост основната структура вече е продаден, или въз основа на набор от прости и масив променливи. Необходимо е да се направи ясно разграничение между описанието на структурата на данните от логическа гледна точка, както и описание на нейното изпълнение. Различни приложения могат да бъдат много, от логическа гледна точка (т.е. по отношение на външния потребител) те са равностойни и различно, може би само на скоростта на поръчки за изпълнение.