Loading...

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

avatar Мария Вълчева 3 минути
Основни структури от данни и тяхното приложение

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


По повод предстоящия курс Data Structures Fundamentals with C#, ще ти представя някои от основните структури от данни, с които ще се сблъскаш и вероятно ще използваш в практиката си. Курсът е подходящ за прохождащи програмисти – ако можеш да боравиш свободно с променливи, цикли, условни конструкции, масиви и вече имаш основни познания по ООП, не се колебай да се запишеш.

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

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


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

Масиви

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

Динамичен масив (Списък)

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

Свързан списък

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

Опашки и стекове

Колкото си приличат, толкова и се различават тези две структури. Опашката представя поведението „пръв влязъл, пръв излязъл“, докато стекът – „последен влязъл, пръв излязъл“. Опашката е естествено представяне на хора, задачи или други елементи, които се обработват последователно, както са постъпили. При стека, достъпен е последният влязъл елемент, докато дъното не е. Можем да добавяме най-горен елемент, да го вадим или да проверяваме какъв е без да го вадим.

Речници

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

Множество

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


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

Научи се да подбираш правилната структура

Колкото повече практикуваш, толкова по-лесно ще различаваш в кой случай кои структури от данни ще са ти от най-голяма полза. Това е ключово умение за успешното ти развитие като програмист. На базово ниво, сигурно вече познаваш част от изброените структури, а ако искаш да надградиш познанията и уменията си, запиши се за курса Data Structures Fundamentals with C# ето ТУК. Започваме на 8 февруари!

Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.