logo

Абстрактен тип данни в структурата на данните

Преди да знаем за абстрактния тип данни, трябва да знаем какво е структура от данни.

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

Структурата на данните е техника за организиране на данните, така че данните да могат да се използват ефективно. Има два начина за преглед на структурата на данните:

    Математически/ Логически/ Абстрактни модели/ Изгледи:Структурата на данните е начинът за организиране на данните, който изисква някои протоколи или правила. Тези правила трябва да бъдат моделирани, които попадат под логическия/абстрактния модел.Изпълнение:Втората част е частта за изпълнение. Правилата трябва да се прилагат с помощта на някакъв език за програмиране.

Защо структура на данните?

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

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

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

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

С други думи, можем да кажем, че абстрактните типове данни са обекти, които са дефиниции на данни и операции, но нямат подробности за изпълнението. В този случай знаем данните, които съхраняваме, и операциите, които могат да бъдат извършени върху данните, но не знаем подробностите за изпълнението. Причината да няма подробности за внедряването е, че всеки език за програмиране има различна стратегия за внедряване, например; C структура от данни се реализира с помощта на структури, докато C++ структура с данни се реализира с помощта на обекти и класове.

Например, списъкът е абстрактен тип данни, който се реализира с помощта на динамичен масив и свързан списък. Опашката се реализира с помощта на свързана опашка, базирана на списък, опашка, базирана на масив, и опашка, базирана на стек. Картата се реализира с помощта на дървовидна карта, хеш карта или хеш таблица.

Модел на абстрактен тип данни

Преди да знаем за модела на абстрактния тип данни, трябва да знаем за абстракцията и капсулирането.

какво е монитор

Абстракция: Това е техника за скриване на вътрешните детайли от потребителя и показване само на необходимите подробности на потребителя.

Капсулиране: Това е техника за комбиниране на данните и членската функция в една единица, известна като капсулиране.

Абстрактен тип данни в структурата на данните

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

Нека разберем абстрактния тип данни с пример от реалния свят.

Ако вземем предвид смартфона. Разглеждаме високите спецификации на смартфона, като например:

  • 4GB RAM
  • Процесор Snapdragon 2.2ghz
  • 5 инча LCD екран
  • Двойна камера
  • Android 8.0

Горните спецификации на смартфона са данните и можем също така да извършваме следните операции на смартфона:

java получава текущо време
    обадете се():Можем да се обаждаме през смартфона.текст():Можем да изпратим текстово съобщение.снимка():Можем да щракнем върху снимка.видео():Можем да направим и видео.

Смартфонът е обект, чиито данни или спецификации и операции са дадени по-горе. Абстрактният/логическият изглед и операциите са абстрактните или логически изгледи на смартфон.

Изгледът на изпълнение на горния абстрактен/логически изглед е даден по-долу:

 class Smartphone { private: int ramSize; string processorName; float screenSize; int cameraCount; string androidVersion; public: void call(); void text(); void photo(); void video(); } 

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

Забележка: Знаем операциите, които могат да бъдат извършени върху предварително дефинирани типове данни като int, float, char и т.н., но не знаем подробностите за изпълнението на типовете данни. Следователно можем да кажем, че абстрактният тип данни се счита за скритата кутия, която скрива всички вътрешни детайли на типа данни.

Пример за структура на данни

Да предположим, че имаме индексен масив с размер 4. Имаме индексно местоположение, започващо от 0, 1, 2, 3. Масивът е структура от данни, където елементите се съхраняват в съседно местоположение. Адресът на паметта на първия елемент е 1000, на втория елемент е 1004, на третия елемент е 1008, а на четвъртия елемент е 1012. Тъй като е от целочислен тип, той ще заема 4 байта и разликата между адресите на всеки елемент е 4 байтове. Стойностите, съхранени в масива, са 10, 20, 30 и 40. Тези стойности, индексните позиции и адресите на паметта са имплементациите.

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

  • Той съхранява набор от елементи от целочислен тип.
  • Той чете елементите по позиция, т.е. индекс.
  • Модифицира елементите по индекс
  • Извършва сортиране

Изгледът за изпълнение на масива с цели числа:

 a[4] = {10, 20, 30, 40} cout<< a[2] a[3] = 50