Структура данных
Структура данных (англ. data structure) — программная единица, позволяющая хранить и обрабатывать (машиной) однотипные и/или логически связанные данные. Для добавления, поиска, изменения и удаления данных структура данных предоставляет некоторый набор функций, составляющих её интерфейс.

Термин «структура данных» может иметь несколько близких, но тем не менее различных значений:
- Абстрактный тип данных;
- Реализация какого-либо абстрактного типа данных;
- Экземпляр типа данных, например, конкретный список;
- В контексте функционального программирования — уникальная единица (англ. unique identity), сохраняющаяся при изменениях. О ней неформально говорят как об одной структуре данных, несмотря на возможное наличие различных версий.
Структуры данных формируются с помощью типов данных, ссылок и операций над ними в выбранном языке программирования.
Различные виды структур данных подходят для различных приложений; некоторые из них имеют узкую специализацию для определённых задач. Например, B-деревья обычно подходят для создания баз данных, в то время как хеш-таблицы используются повсеместно для создания различного рода словарей, например, для отображения доменных имён в интернет-адресах компьютеров.
При разработке программного обеспечения сложность реализации и качество работы программ существенно зависят от правильного выбора структур данных. Это понимание дало начало формальным методам разработки и языкам программирования, в которых именно структуры данных, а не алгоритмы, ставятся во главу архитектуры программного средства. Большая часть таких языков обладает определённым типом модульности, позволяющим структурам данных безопасно переиспользоваться в различных приложениях. Объектно-ориентированные языки, такие как Java, C# и C++, являются примерами такого подхода.

Многие классические структуры данных представлены в стандартных библиотеках языков программирования или непосредственно встроены в языки программирования. Например, структура данных хеш-таблица встроена в языки программирования Lua, Perl, Python, Ruby, Tcl и др. Широко используется стандартная библиотека шаблонов (STL) языка C++.
Фундаментальными строительными блоками для большей части структур данных являются массивы, записи (struct в Си и record в Паскале), размеченные объединения (union в Си) и ссылки. Например, двусвязный список может быть построен с помощью записей и ссылок, где каждая запись (узел) будет хранить данные и ссылки на «левый» и «правый» узлы.
Сравнение структур данных в функциональном и императивном программировании
Проектировать структуры данных для функциональных языков более сложно, чем для императивных, как минимум по двум причинам:
- Почти все структуры данных интенсивно используют присваивание, которое в чисто функциональном стиле не используется;
- Функциональные структуры данных являются более гибкими, и поэтому там, где в императивном программировании старая версия теряется, просто заменяясь новой, в функциональном она автоматически продолжает существовать. Другими словами, в императивном программировании (если не принять особых мер, которые могут серьёзно усложнить программу) структуры данных являются эфемерными (англ. ephemeral), а в функциональных программах они как правило постоянные (англ. persistent).
См. также
- Онтология (информатика)
Примечания
- Okasaki, 1998, pp. 3—4.
Литература
- Альфред В. Ахо, Джон Хопкрофт, Джеффри Д. Ульман. Структуры данных и алгоритмы = Data Structures and Algorithms. — М.: , 2000. — 384 с. — ISBN 0-201-00023-7.
- Майкл Мейн, Уолтер Савитч. Структуры данных и другие объекты в C++ = Data Structures and Other Objects Using C++. — 2-е изд. — М.: , 2002. — 832 с. — ISBN 0-201-70297-5.
- Chris Okasaki. Purely Functional Data Structures. — Cambridge University Press, 1998. — 232 с. — ISBN 978-0521663502.
Ссылки
- Структуры данных и хеширование
Для улучшения этой статьи по информационным технологиям желательно: |
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Структура данных, Что такое Структура данных? Что означает Структура данных?
Struktura dannyh angl data structure programmnaya edinica pozvolyayushaya hranit i obrabatyvat mashinoj odnotipnye i ili logicheski svyazannye dannye Dlya dobavleniya poiska izmeneniya i udaleniya dannyh struktura dannyh predostavlyaet nekotoryj nabor funkcij sostavlyayushih eyo interfejs Binarnoe derevo prostoj primer vetvyashejsya svyaznoj struktury dannyh Termin struktura dannyh mozhet imet neskolko blizkih no tem ne menee razlichnyh znachenij Abstraktnyj tip dannyh Realizaciya kakogo libo abstraktnogo tipa dannyh Ekzemplyar tipa dannyh naprimer konkretnyj spisok V kontekste funkcionalnogo programmirovaniya unikalnaya edinica angl unique identity sohranyayushayasya pri izmeneniyah O nej neformalno govoryat kak ob odnoj strukture dannyh nesmotrya na vozmozhnoe nalichie razlichnyh versij Struktury dannyh formiruyutsya s pomoshyu tipov dannyh ssylok i operacij nad nimi v vybrannom yazyke programmirovaniya Razlichnye vidy struktur dannyh podhodyat dlya razlichnyh prilozhenij nekotorye iz nih imeyut uzkuyu specializaciyu dlya opredelyonnyh zadach Naprimer B derevya obychno podhodyat dlya sozdaniya baz dannyh v to vremya kak hesh tablicy ispolzuyutsya povsemestno dlya sozdaniya razlichnogo roda slovarej naprimer dlya otobrazheniya domennyh imyon v internet adresah kompyuterov Pri razrabotke programmnogo obespecheniya slozhnost realizacii i kachestvo raboty programm sushestvenno zavisyat ot pravilnogo vybora struktur dannyh Eto ponimanie dalo nachalo formalnym metodam razrabotki i yazykam programmirovaniya v kotoryh imenno struktury dannyh a ne algoritmy stavyatsya vo glavu arhitektury programmnogo sredstva Bolshaya chast takih yazykov obladaet opredelyonnym tipom modulnosti pozvolyayushim strukturam dannyh bezopasno pereispolzovatsya v razlichnyh prilozheniyah Obektno orientirovannye yazyki takie kak Java C i C yavlyayutsya primerami takogo podhoda Mnogie klassicheskie struktury dannyh predstavleny v standartnyh bibliotekah yazykov programmirovaniya ili neposredstvenno vstroeny v yazyki programmirovaniya Naprimer struktura dannyh hesh tablica vstroena v yazyki programmirovaniya Lua Perl Python Ruby Tcl i dr Shiroko ispolzuetsya standartnaya biblioteka shablonov STL yazyka C Fundamentalnymi stroitelnymi blokami dlya bolshej chasti struktur dannyh yavlyayutsya massivy zapisi struct v Si i record v Paskale razmechennye obedineniya union v Si i ssylki Naprimer dvusvyaznyj spisok mozhet byt postroen s pomoshyu zapisej i ssylok gde kazhdaya zapis uzel budet hranit dannye i ssylki na levyj i pravyj uzly Sravnenie struktur dannyh v funkcionalnom i imperativnom programmirovaniiProektirovat struktury dannyh dlya funkcionalnyh yazykov bolee slozhno chem dlya imperativnyh kak minimum po dvum prichinam Pochti vse struktury dannyh intensivno ispolzuyut prisvaivanie kotoroe v chisto funkcionalnom stile ne ispolzuetsya Funkcionalnye struktury dannyh yavlyayutsya bolee gibkimi i poetomu tam gde v imperativnom programmirovanii staraya versiya teryaetsya prosto zamenyayas novoj v funkcionalnom ona avtomaticheski prodolzhaet sushestvovat Drugimi slovami v imperativnom programmirovanii esli ne prinyat osobyh mer kotorye mogut seryozno uslozhnit programmu struktury dannyh yavlyayutsya efemernymi angl ephemeral a v funkcionalnyh programmah oni kak pravilo postoyannye angl persistent Sm takzheOntologiya informatika PrimechaniyaOkasaki 1998 pp 3 4 LiteraturaAlfred V Aho Dzhon Hopkroft Dzheffri D Ulman Struktury dannyh i algoritmy Data Structures and Algorithms M 2000 384 s ISBN 0 201 00023 7 Majkl Mejn Uolter Savitch Struktury dannyh i drugie obekty v C Data Structures and Other Objects Using C 2 e izd M 2002 832 s ISBN 0 201 70297 5 Chris Okasaki Purely Functional Data Structures Cambridge University Press 1998 232 s ISBN 978 0521663502 SsylkiStruktury dannyh i heshirovanieDlya uluchsheniya etoj stati po informacionnym tehnologiyam zhelatelno Prostavit snoski vnesti bolee tochnye ukazaniya na istochniki Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom
