logo

Въведение в структурите от данни

От изобретяването на компютрите хората използват термина „ Данни ' за препратка към компютърна информация, предадена или съхранена. Има обаче данни, които съществуват и в типове поръчки. Данните могат да бъдат числа или текстове, написани на лист хартия, под формата на битове и байтове, съхранени в паметта на електронни устройства, или факти, съхранени в съзнанието на човек. Тъй като светът започна да се модернизира, тези данни се превърнаха във важен аспект от ежедневния живот на всеки и различни реализации им позволиха да ги съхраняват по различен начин.

Данни е колекция от факти и цифри или набор от стойности или стойности в специфичен формат, който се отнася до единичен набор от стойности на елемент. След това елементите от данни се класифицират в подпозиции, което е групата от елементи, които не са известни като проста първична форма на елемента.

Нека разгледаме пример, при който името на служител може да бъде разделено на три подпозиции: Първо, Средно и Последно. Обаче ID, присвоен на служител, обикновено ще се счита за един елемент.

Въведение в структурите от данни

Фигура 1: Представяне на елементи от данни

В примера, споменат по-горе, елементи като ID, Възраст, Пол, Първо, Средно, Последно, Улица, Населено място и т.н., са елементарни елементи от данни. За разлика от тях Името и Адресът са групови елементи с данни.

Какво е структура на данните?

Структура на данни е клон на компютърните науки. Изследването на структурата на данните ни позволява да разберем организацията на данните и управлението на потока от данни, за да увеличим ефективността на всеки процес или програма. Структурата на данните е специфичен начин за съхраняване и организиране на данни в паметта на компютъра, така че тези данни да могат лесно да бъдат извлечени и ефективно използвани в бъдеще, когато е необходимо. Данните могат да се управляват по различни начини, като логическият или математическият модел за конкретна организация на данни е известен като структура от данни.

Обхватът на конкретен модел на данни зависи от два фактора:

  1. Първо, той трябва да бъде достатъчно зареден в структурата, за да отразява определената корелация на данните с обект от реалния свят.
  2. Второ, формирането трябва да бъде толкова лесно, че човек да може да се адаптира за ефективна обработка на данните, когато е необходимо.

Някои примери за структури от данни са масиви, свързани списъци, стек, опашка, дървета и др. Структурите от данни се използват широко в почти всеки аспект на компютърните науки, т.е. проектиране на компилатор, операционни системи, графики, изкуствен интелект и много други.

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

mysql ляво присъединяване

Основни терминологии, свързани със структурите от данни

Структурите на данни са градивните елементи на всеки софтуер или програма. Изборът на подходяща структура от данни за една програма е изключително предизвикателна задача за програмиста.

По-долу са някои основни терминологии, използвани винаги, когато са включени структури от данни:

    Данни:Можем да дефинираме данните като елементарна стойност или колекция от стойности. Например името и идентификационният номер на служителя са данните, свързани със служителя.Елементи с данни:Една единица стойност е известна като елемент от данни.Групови елементи:Елементите с данни, които имат подчинени елементи с данни, са известни като групови елементи. Например, името на служител може да има собствено, бащино и фамилно име.Елементарни елементи:Елементите с данни, които не могат да се разделят на под-елементи, са известни като елементарни елементи. Например ID на служител.Обект и атрибут:Клас от определени обекти се представя от Entity. Състои се от различни атрибути. Всеки атрибут символизира конкретното свойство на този обект. Например,
Атрибути документ за самоличност Име Пол Длъжност
Стойности 1234 Стейси М. Хил Женски пол Разработчик на софтуер

Обекти с подобни атрибути образуват an Набор от обекти . Всеки атрибут на набор от обекти има диапазон от стойности, набор от всички възможни стойности, които могат да бъдат присвоени на конкретния атрибут.

Терминът „информация“ понякога се използва за данни с дадени атрибути на значими или обработени данни.

    поле:Единична елементарна единица информация, символизираща атрибута на даден обект, е известна като поле.запис:Колекция от различни елементи с данни е известна като запис. Например, ако говорим за обект на служител, тогава неговото име, идентификатор, адрес и длъжност могат да бъдат групирани, за да формират записа за служителя.файл:Колекция от различни записи от един тип обект е известна като файл. Например, ако има 100 служители, ще има 25 записа в свързания файл, съдържащ данни за всеки служител.

Разбиране на необходимостта от структури от данни

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

Защо трябва да научим структури от данни?

  1. Структурите на данни и алгоритмите са два от ключовите аспекти на компютърните науки.
  2. Структурите на данни ни позволяват да организираме и съхраняваме данни, докато алгоритмите ни позволяват да обработваме тези данни смислено.
  3. Изучаването на структури от данни и алгоритми ще ни помогне да станем по-добри програмисти.
  4. Ще можем да пишем код, който е по-ефективен и надежден.
  5. Освен това ще можем да решаваме проблемите по-бързо и по-ефективно.

Разбиране на целите на структурите от данни

Структурите на данни отговарят на две допълващи се цели:

    Коректност:Структурите на данни са проектирани да работят правилно за всички видове входове въз основа на домейна, който представлява интерес. С други думи, коректността формира основната цел на структурата на данните, която винаги зависи от проблемите, които структурата на данните трябва да разреши.Ефективност:Структурите на данни също изискват да бъдат ефективни. Той трябва да обработва данните бързо, без да използва много компютърни ресурси като пространство в паметта. В състояние на реално време ефективността на структурата от данни е ключов фактор при определяне на успеха и неуспеха на процеса.

Разбиране на някои ключови характеристики на структурите от данни

Някои от важните характеристики на структурите от данни са:

    Здравина:Като цяло, всички компютърни програмисти се стремят да произвеждат софтуер, който дава правилен изход за всеки възможен вход, заедно с ефективно изпълнение на всички хардуерни платформи. Този тип стабилен софтуер трябва да управлява както валидни, така и невалидни входове.Адаптивност:Изграждането на софтуерни приложения като уеб браузъри, текстови процесори и интернет търсачка включва огромни софтуерни системи, които изискват правилна и ефективна работа или изпълнение в продължение на много години. Освен това софтуерът се развива поради нововъзникващите технологии или непрекъснато променящите се пазарни условия.Повторна употреба:Функциите като повторно използване и адаптивност вървят ръка за ръка. Известно е, че програмистът се нуждае от много ресурси, за да създаде какъвто и да е софтуер, което го прави скъпо предприятие. Въпреки това, ако софтуерът е разработен по многократно използваем и адаптивен начин, тогава той може да се прилага в повечето бъдещи приложения. По този начин, чрез изпълнение на качествени структури от данни, е възможно да се изгради многократно използваем софтуер, който изглежда рентабилен и спестяващ време.

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

Структурата на данните предоставя структуриран набор от променливи, свързани една с друга по различни начини. Той формира основата на инструмент за програмиране, който обозначава връзката между елементите на данните и позволява на програмистите да обработват данните ефективно.

Можем да класифицираме структурите от данни в две категории:

  1. Примитивна структура на данните
  2. Непримитивна структура на данните

Следващата фигура показва различните класификации на структурите от данни.

карта на reactjs
Въведение в структурите от данни

Фигура 2: Класификации на структурите от данни

Примитивни структури от данни

    Примитивни структури от данниса структурите от данни, състоящи се от числата и знаците, които идват вградени в програми.
  1. Тези структури от данни могат да бъдат манипулирани или управлявани директно от инструкции на ниво машина.
  2. Основни типове данни като Цяло число, плаващо число, знак , и Булева стойност попадат под примитивните структури от данни.
  3. Тези типове данни също се наричат Прости типове данни , тъй като съдържат знаци, които не могат да бъдат разделени допълнително

Непримитивни структури от данни

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

Линейни структури от данни

Структура от данни, която запазва линейна връзка между своите елементи от данни, е известна като линейна структура от данни. Подреждането на данните се извършва линейно, като всеки елемент се състои от наследници и предшественици, с изключение на първия и последния елемент на данните. Това обаче не е непременно вярно в случай на памет, тъй като подреждането може да не е последователно.

Въз основа на разпределението на паметта, линейните структури от данни се класифицират допълнително в два типа:

    Статични структури от данни:Структурите от данни с фиксиран размер са известни като статични структури от данни. Паметта за тези структури от данни се разпределя по време на компилатора и техният размер не може да бъде променен от потребителя след компилиране; но съхранените в тях данни могат да бъдат променяни.
    The Масив е най-добрият пример за статичната структура на данните, тъй като те имат фиксиран размер и данните му могат да бъдат модифицирани по-късно.Динамични структури от данни:Структурите от данни с динамичен размер са известни като динамични структури от данни. Паметта на тези структури от данни се разпределя по време на изпълнение и техният размер варира по време на изпълнение на кода. Освен това потребителят може да промени размера, както и елементите от данни, съхранявани в тези структури от данни по време на изпълнение на кода.
    Свързани списъци, стекове , и Опашки са често срещани примери за динамични структури от данни

Типове линейни структури от данни

Следва списъкът с линейни структури от данни, които обикновено използваме:

1. Масиви

Ан Масив е структура от данни, използвана за събиране на множество елементи от данни от един и същи тип данни в една променлива. Вместо да съхраняваме множество стойности от едни и същи типове данни в отделни имена на променливи, можем да ги съхраняваме всички заедно в една променлива. Това твърдение не означава, че ще трябва да обединим всички стойности от един и същи тип данни във всяка програма в един масив от този тип данни. Но често ще има моменти, когато някои специфични променливи от едни и същи типове данни са свързани една с друга по начин, подходящ за масив.

Масивът е списък от елементи, където всеки елемент има уникално място в списъка. Елементите от данни на масива споделят едно и също име на променлива; всеки обаче носи различен индексен номер, наречен долен индекс. Имаме достъп до всеки елемент от данни от списъка с помощта на местоположението му в списъка. По този начин ключовата характеристика на масивите, която трябва да се разбере, е, че данните се съхраняват в съседни места в паметта, което прави възможно на потребителите да преминават през елементите с данни на масива, използвайки съответните им индекси.

Въведение в структурите от данни

Фигура 3. Масив

Масивите могат да бъдат класифицирани в различни типове:

    Едномерен масив:Масив само с един ред елементи от данни е известен като едномерен масив. Съхранява се във възходящо място за съхранение.Двуизмерен масив:Масив, състоящ се от множество редове и колони от елементи от данни, се нарича двумерен масив. Известен е още като Матрица.Многоизмерен масив:Можем да дефинираме многомерния масив като масив от масиви. Многомерните масиви не са ограничени до два индекса или две измерения, тъй като могат да включват колкото се може повече индекси според нуждите.

Някои приложения на масива:

  1. Можем да съхраняваме списък с елементи от данни, принадлежащи към един и същ тип данни.
  2. Масивът действа като спомагателно хранилище за други структури от данни.
  3. Масивът също помага за съхраняване на елементи от данни на двоично дърво с фиксиран брой.
  4. Масивът също действа като хранилище на матрици.

2. Свързани списъци

А Свързан списък е друг пример за линейна структура от данни, използвана за динамично съхраняване на колекция от елементи от данни. Елементите от данни в тази структура от данни са представени от възлите, свързани чрез връзки или указатели. Всеки възел съдържа две полета, информационното поле се състои от действителните данни, а полето за указател се състои от адреса на следващите възли в списъка. Указателят на последния възел на свързания списък се състои от нулев указател, тъй като не сочи към нищо. За разлика от масивите, потребителят може динамично да регулира размера на свързания списък според изискванията.

Въведение в структурите от данни

Фигура 4. Свързан списък

кортеж за сортиране на python

Свързаните списъци могат да бъдат класифицирани в различни типове:

    Единично свързан списък:Единично свързаният списък е най-често срещаният тип свързан списък. Всеки възел има данни и поле за указател, съдържащо адрес към следващия възел.Двойно свързан списък:Двойно свързаният списък се състои от информационно поле и две полета с указател. Информационното поле съдържа данните. Първото указателно поле съдържа адрес на предишния възел, докато друго указателно поле съдържа препратка към следващия възел. Така можем да вървим и в двете посоки (назад, както и напред).Циркулярен свързан списък:Кръговият свързан списък е подобен на единично свързания списък. Единствената ключова разлика е, че последният възел съдържа адреса на първия възел, образувайки кръгов цикъл в Circular Linked List.

Някои приложения на свързани списъци:

  1. Свързаните списъци ни помагат да внедрим стекове, опашки, двоични дървета и графики с предварително определен размер.
  2. Можем също така да внедрим функцията на операционната система за динамично управление на паметта.
  3. Свързаните списъци също позволяват полиномна реализация за математически операции.
  4. Можем да използваме Circular Linked List за внедряване на операционни системи или функции на приложения, които изпълняват Round Robin задачи.
  5. Кръговият свързан списък също е полезен при слайдшоу, където потребителят изисква да се върне към първия слайд след представянето на последния слайд.
  6. Двойно свързаният списък се използва за внедряване на бутони напред и назад в браузър за придвижване напред и назад в отворените страници на уебсайт.

3. Купчини

А Стек е линейна структура на данните, която следва LIFO (Последен влязъл, първи излязъл) принцип, който позволява операции като вмъкване и изтриване от единия край на стека, т.е. отгоре. Стековете могат да бъдат реализирани с помощта на непрекъсната памет, масив, и несвързана памет, свързан списък. Примери за купища от реалния живот са купчини книги, тесте карти, купчини пари и много други.

Въведение в структурите от данни

Фигура 5. Пример за стек от реалния живот

Фигурата по-горе представлява пример от реалния живот на стек, където операциите се извършват само от единия край, като вмъкване и премахване на нови книги от горната част на стека. Това означава, че вмъкването и изтриването в стека може да се извърши само от върха на стека. Имаме достъп само до върховете на стека във всеки един момент.

Основните операции в стека са както следва:

    Пуш:Операцията за вмъкване на нов елемент в стека се нарича Push операция.Поп:Операцията за премахване или изтриване на елементи от стека се нарича изскачаща операция.
Въведение в структурите от данни

Фигура 6. Купчина

Някои приложения на стекове:

  1. Стекът се използва като временна структура за съхранение за рекурсивни операции.
  2. Стекът също се използва като спомагателна структура за съхранение за извиквания на функции, вложени операции и отложени/отложени функции.
  3. Можем да управляваме извиквания на функции с помощта на Stacks.
  4. Стековете също се използват за оценка на аритметичните изрази в различни езици за програмиране.
  5. Стековете също са полезни при преобразуването на инфикс изрази в постфикс изрази.
  6. Стековете ни позволяват да проверим синтаксиса на израза в програмната среда.
  7. Можем да съпоставим скоби с помощта на Stacks.
  8. Стекове могат да се използват за обръщане на низ.
  9. Стековете са полезни при решаването на проблеми, базирани на обратно проследяване.
  10. Можем да използваме Stacks при търсене в дълбочина при обхождане на графика и дърво.
  11. Стековете се използват и във функциите на операционната система.
  12. Стековете също се използват във функции UNDO и REDO при редакция.

4. Опашки

А Опашка е линейна структура от данни, подобна на стек с някои ограничения върху вмъкването и изтриването на елементите. Вмъкването на елемент в опашката се извършва в единия край, а премахването се извършва в другия или срещуположния край. По този начин можем да заключим, че структурата на данните на Queue следва принципа FIFO (First In, First Out) за манипулиране на елементите от данни. Внедряването на опашки може да се извърши с помощта на масиви, свързани списъци или стекове. Някои реални примери за опашки са опашка пред гишето за билети, ескалатор, автомивка и много други.

Въведение в структурите от данни

Фигура 7. Пример за опашка от реалния живот

Изображението по-горе е реална илюстрация на гише за билети за кино, което може да ни помогне да разберем опашката, където клиентът, който дойде първи, винаги се обслужва първи. Клиентът, който пристига последен, несъмнено ще бъде обслужен последен. И двата края на опашката са отворени и могат да изпълняват различни операции. Друг пример е линия за хранене, където клиентът се вкарва от задния край, докато клиентът се отстранява отпред, след като предостави услугата, която е поискал.

Следните са основните операции на опашката:

какво е модуло в c++
    Поставете в опашка:Вмъкването или добавянето на някои елементи от данни към опашката се нарича Enqueue. Вмъкването на елемента винаги става с помощта на задната стрелка.Изваждане от опашката:Изтриването или премахването на елементи от данни от опашката се нарича премахване от опашката. Изтриването на елемента винаги се извършва с помощта на предния показалец.
Въведение в структурите от данни

Фигура 8. Опашка

Някои приложения на опашки:

  1. Опашките обикновено се използват в операцията за търсене в ширина в Graphs.
  2. Опашките се използват и в операциите на планировчика на задания на операционните системи, като опашка на буфер на клавиатура за съхраняване на клавишите, натиснати от потребителите, и опашка на буфер за печат за съхраняване на документите, отпечатани от принтера.
  3. Опашките са отговорни за планирането на процесора, планирането на задачите и планирането на диска.
  4. Приоритетните опашки се използват при операции за изтегляне на файлове в браузър.
  5. Опашките се използват и за прехвърляне на данни между периферни устройства и централния процесор.
  6. Опашките също са отговорни за обработката на прекъсвания, генерирани от потребителските приложения за процесора.

Нелинейни структури от данни

Нелинейните структури от данни са структури от данни, при които елементите от данни не са подредени в последователен ред. Тук вмъкването и премахването на данни не са осъществими по линеен начин. Съществува йерархична връзка между отделните елементи от данни.

Типове нелинейни структури от данни

Следва списъкът с нелинейни структури от данни, които обикновено използваме:

1. Дървета

Дървото е нелинейна структура от данни и йерархия, съдържаща колекция от възли, така че всеки възел на дървото съхранява стойност и списък с препратки към други възли („децата“).

Дървовидната структура на данни е специализиран метод за подреждане и събиране на данни в компютъра, за да се използват по-ефективно. Той съдържа централен възел, структурни възли и подвъзли, свързани чрез ръбове. Можем също да кажем, че структурата на данните на дървото се състои от свързани корени, клони и листа.

Въведение в структурите от данни

Фигура 9. Дърво

Дърветата могат да бъдат класифицирани в различни видове:

    Двоично дърво:Дървовидна структура от данни, при която всеки родителски възел може да има най-много две деца, се нарича двоично дърво.Двоично дърво за търсене:Двоичното дърво за търсене е дървовидна структура от данни, където можем лесно да поддържаме сортиран списък от числа.AVL дърво:Дървото на AVL е самобалансиращо се дърво за двоично търсене, където всеки възел поддържа допълнителна информация, известна като фактор на баланс, чиято стойност е -1, 0 или +1.B-дърво:B-Tree е специален тип самобалансиращо се двоично дърво за търсене, където всеки възел се състои от множество ключове и може да има повече от две деца.

Някои приложения на дърветата:

  1. Дърветата прилагат йерархични структури в компютърни системи като директории и файлови системи.
  2. Дърветата също се използват за реализиране на навигационната структура на уебсайт.
  3. Можем да генерираме код като кода на Хъфман, използвайки дървета.
  4. Дърветата също са полезни при вземането на решения в приложенията за игри.
  5. Дърветата са отговорни за внедряването на приоритетни опашки за базирани на приоритет функции за планиране на OS.
  6. Дърветата също са отговорни за анализирането на изрази и изрази в компилаторите на различни езици за програмиране.
  7. Можем да използваме дървета за съхраняване на ключове за данни за индексиране за система за управление на бази данни (СУБД).
  8. Spanning Trees ни позволява да маршрутизираме решения в компютърни и комуникационни мрежи.
  9. Дърветата се използват и в алгоритъма за намиране на път, внедрен в приложенията за изкуствен интелект (AI), роботиката и видеоигрите.

2. Графики

Графиката е друг пример за нелинейна структура от данни, включваща краен брой възли или върхове и ръбовете, които ги свързват. Графиките се използват за справяне с проблеми в реалния свят, в който се обозначава проблемната област като мрежа като социални мрежи, верижни мрежи и телефонни мрежи. Например, възлите или върховете на Graph могат да представляват един потребител в телефонна мрежа, докато ръбовете представляват връзката между тях чрез телефон.

Структурата на данните на Graph, G се счита за математическа структура, състояща се от набор от върхове, V и набор от ръбове, E, както е показано по-долу:

G = (V,E)

Въведение в структурите от данни

Фигура 10. Графика

Фигурата по-горе представлява график със седем върха A, B, C, D, E, F, G и десет ребра [A, B], [A, C], [B, C], [B, D], [B, E], [C, D], [D, E], [D, F], [E, F] и [E, G].

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

    Нулева графика:Граф с празен набор от ребра се нарича Нулев Граф.Тривиална графика:Граф, който има само един връх, се нарича тривиален граф.Проста графика:Граф без нито самоцикли, нито множество ребра е известен като прост график.Мулти графика:Графът се нарича Multi, ако се състои от множество ребра, но не и самоцикли.Псевдо графика:Граф със собствени цикли и множество ребра се нарича псевдограф.Ненасочена графика:Граф, състоящ се от ненасочени ръбове, е известен като ненасочен график.Насочена графика:Граф, състоящ се от насочени ребра между върховете, е известен като насочен граф.Свързана графика:Граф с поне един път между всяка двойка върхове се нарича свързан граф.Прекъсната графика:Граф, при който не съществува път между поне една двойка върхове, се нарича несвързан граф.Редовна графика:Граф, в който всички върхове имат еднаква степен, се нарича редовен граф.Пълна графика:Граф, в който всички върхове имат ребро между всяка двойка върхове, е известен като пълен граф.Графика на цикъла:Графът се нарича цикъл, ако има поне три върха и ребра, които образуват цикъл.Циклична графика:Графът се нарича цикличен тогава и само ако съществува поне един цикъл.Ациклична графика:Граф с нулеви цикли се нарича ацикличен граф.Крайна графика:Граф с краен брой върхове и ръбове е известен като краен граф.Безкрайна графика:Граф с безкраен брой върхове и ръбове е известен като безкраен граф.Двустранна графика:Граф, при който върховете могат да бъдат разделени на независими набори A и B, и всички върхове на набор A трябва да бъдат свързани само с върховете, присъстващи в набор B с някои ребра, се нарича двустранна графика.Планарна графика:Една графика се нарича равнина, ако можем да я начертаем в една равнина с два ръба, пресичащи се един друг.Графика на Ойлер:Графът се нарича Ойлер тогава и само ако всички върхове са четни степени.Хамилтонова графика:Свързана графика, състояща се от Хамилтонова верига, е известна като Хамилтонова графика.

Някои приложения на графиките:

  1. Графиките ни помагат да представяме маршрути и мрежи в приложения за транспорт, пътуване и комуникация.
  2. Графиките се използват за показване на маршрути в GPS.
  3. Графиките също ни помагат да представим взаимовръзките в социалните мрежи и други мрежови приложения.
  4. Графиките се използват в приложения за картографиране.
  5. Графиките са отговорни за представянето на потребителските предпочитания в приложенията за електронна търговия.
  6. Графиките се използват и в комуналните мрежи, за да се идентифицират проблемите, поставени пред местните или общинските корпорации.
  7. Графиките също помагат да се управлява използването и наличността на ресурси в една организация.
  8. Графиките се използват и за създаване на карти с връзки към документи на уебсайтовете, за да се покаже свързаността между страниците чрез хипервръзки.
  9. Графиките се използват и в роботизирани движения и невронни мрежи.

Основни операции на структурите от данни

В следващия раздел ще обсъдим различните типове операции, които можем да изпълняваме, за да манипулираме данни във всяка структура от данни:

    Преминаване:Обхождането на структура от данни означава достъп до всеки елемент от данни точно веднъж, за да може да бъде администриран. Например, при отпечатване на имената на всички служители в даден отдел е необходимо преминаване.Търсене:Търсенето е друга операция в структурата на данните, която означава намиране на местоположението на един или повече елементи от данни, които отговарят на определени ограничения. Такъв елемент от данни може или не може да присъства в дадения набор от елементи от данни. Например, можем да използваме операцията за търсене, за да намерим имената на всички служители, които имат опит над 5 години.Вмъкване:Вмъкване означава вмъкване или добавяне на нови елементи от данни към колекцията. Например, можем да използваме операцията за вмъкване, за да добавим подробности за нов служител, който компанията наскоро е наела.Изтриване:Изтриването означава премахване или изтриване на конкретен елемент от данни от дадения списък с елементи от данни. Например, можем да използваме операцията за изтриване, за да изтрием името на служител, който е напуснал работа.Сортиране:Сортирането означава подреждане на елементите от данни във възходящ или низходящ ред в зависимост от типа на приложението. Например, можем да използваме операцията за сортиране, за да подредим имената на служителите в отдел по азбучен ред или да оценим трите най-добри изпълнители за месеца, като подредим представянето на служителите в низходящ ред и извлечем подробностите за първите три.Обединяване:Обединяване означава комбиниране на елементи от данни от два сортирани списъка, за да се образува един списък от сортирани елементи от данни.Създаване:Create е операция, използвана за резервиране на памет за елементите от данни на програмата. Можем да извършим тази операция с помощта на декларация. Създаването на структура от данни може да стане по време на следното:
    1. Време за компилиране
    2. Време за изпълнение
      Например, на malloc() функция се използва в езика C за създаване на структура от данни.
    Избор:Избор означава избиране на конкретни данни от наличните данни. Можем да изберем всякакви конкретни данни, като посочим условия вътре в цикъла.Актуализация:Операцията Update ни позволява да актуализираме или модифицираме данните в структурата на данните. Можем също да актуализираме всякакви конкретни данни, като посочим някои условия вътре в цикъла, като операцията за избор.Разделяне:Операцията за разделяне ни позволява да разделяме данните на различни подчасти, намалявайки общото време за завършване на процеса.

Разбиране на абстрактния тип данни

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

От дефиницията, спомената по-горе, можем да заключим, че операциите в структурата на данните включват:

  1. Високо ниво на абстракции като добавяне или изтриване на елемент от списък.
  2. Търсене и сортиране на елемент в списък.
  3. Достъп до елемента с най-висок приоритет в списък.

Всеки път, когато структурата от данни извършва такива операции, тя е известна като an Абстрактен тип данни (ADT) .

Можем да го дефинираме като набор от елементи от данни заедно с операциите върху данните. Терминът „абстрактно“ се отнася до факта, че данните и основните операции, дефинирани върху тях, се изучават независимо от тяхното изпълнение. Това включва какво можем да направим с данните, а не как можем да го направим.

Реализацията на ADI съдържа структура за съхранение, за да съхранява елементите от данни и алгоритмите за фундаментална работа. Всички структури от данни, като масив, свързан списък, опашка, стек и т.н., са примери за ADT.

css за получер

Разбиране на предимствата от използването на ADT

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

Някои приложения на структурите от данни

Следват някои приложения на структурите от данни:

  1. Структурите на данни помагат при организирането на данните в паметта на компютъра.
  2. Структурите на данни също помагат при представянето на информацията в базите данни.
  3. Структурите на данни позволяват внедряването на алгоритми за търсене в данни (например търсачка).
  4. Можем да използваме структурите на данни, за да внедрим алгоритмите за манипулиране на данни (например текстообработващи програми).
  5. Можем също така да внедрим алгоритмите за анализиране на данни с помощта на структури от данни (например копачи на данни).
  6. Структурите на данни поддържат алгоритми за генериране на данни (Например генератор на произволни числа).
  7. Структурите на данни също поддържат алгоритми за компресиране и декомпресиране на данните (Например помощна програма за zip).
  8. Можем също да използваме структури от данни, за да внедрим алгоритми за криптиране и декриптиране на данните (например система за сигурност).
  9. С помощта на структурите на данни можем да изградим софтуер, който може да управлява файлове и директории (например файлов мениджър).
  10. Можем също така да разработим софтуер, който може да визуализира графики с помощта на структури от данни. (Например уеб браузър или софтуер за 3D изобразяване).

Освен тези, както споменахме по-рано, има много други приложения на структурите от данни, които могат да ни помогнат да изградим всеки желан софтуер.