Share to: share facebook share twitter share wa share telegram print page

Data structure

A data structure known as a hash table.

In computer science, a data structure is a data organization and storage format that is usually chosen for efficient access to data.[1][2][3] More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data,[4] i.e., it is an algebraic structure about data.

Usage

Data structures serve as the basis for abstract data types (ADT). The ADT defines the logical form of the data type. The data structure implements the physical form of the data type.[5]

Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, relational databases commonly use B-tree indexes for data retrieval,[6] while compiler implementations usually use hash tables to look up identifiers.[7]

Data structures provide a means to manage large amounts of data efficiently for uses such as large databases and internet indexing services. Usually, efficient data structures are key to designing efficient algorithms. Some formal design methods and programming languages emphasize data structures, rather than algorithms, as the key organizing factor in software design. Data structures can be used to organize the storage and retrieval of information stored in both main memory and secondary memory.[8]

Implementation

Data structures can be implemented using a variety of programming languages and techniques, but they all share the common goal of efficiently organizing and storing data.[9] Data structures are generally based on the ability of a computer to fetch and store data at any place in its memory, specified by a pointer—a bit string, representing a memory address, that can be itself stored in memory and manipulated by the program. Thus, the array and record data structures are based on computing the addresses of data items with arithmetic operations, while the linked data structures are based on storing addresses of data items within the structure itself. This approach to data structuring has profound implications for the efficiency and scalability of algorithms. For instance, the contiguous memory allocation in arrays facilitates rapid access and modification operations, leading to optimized performance in sequential data processing scenarios.[10]

The implementation of a data structure usually requires writing a set of procedures that create and manipulate instances of that structure. The efficiency of a data structure cannot be analyzed separately from those operations. This observation motivates the theoretical concept of an abstract data type, a data structure that is defined indirectly by the operations that may be performed on it, and the mathematical properties of those operations (including their space and time cost).[11]

Examples

The standard type hierarchy of the programming language Python 3.

There are numerous types of data structures, generally built upon simpler primitive data types. Well known examples are:[12]

  • An array is a number of elements in a specific order, typically all of the same type (depending on the language, individual elements may either all be forced to be the same type, or may be of almost any type). Elements are accessed using an integer index to specify which element is required. Typical implementations allocate contiguous memory words for the elements of arrays (but this is not always a necessity). Arrays may be fixed-length or resizable.
  • A linked list (also just called list) is a linear collection of data elements of any type, called nodes, where each node has itself a value, and points to the next node in the linked list. The principal advantage of a linked list over an array is that values can always be efficiently inserted and removed without relocating the rest of the list. Certain other operations, such as random access to a certain element, are however slower on lists than on arrays.
  • A record (also called tuple or struct) is an aggregate data structure. A record is a value that contains other values, typically in fixed number and sequence and typically indexed by names. The elements of records are usually called fields or members. In the context of object-oriented programming, records are known as plain old data structures to distinguish them from objects.[13]
  • Hash tables, also known as hash maps, are data structures that provide fast retrieval of values based on keys. They use a hashing function to map keys to indexes in an array, allowing for constant-time access in the average case. Hash tables are commonly used in dictionaries, caches, and database indexing. However, hash collisions can occur, which can impact their performance. Techniques like chaining and open addressing are employed to handle collisions.
  • Graphs are collections of nodes connected by edges, representing relationships between entities. Graphs can be used to model social networks, computer networks, and transportation networks, among other things. They consist of vertices (nodes) and edges (connections between nodes). Graphs can be directed or undirected, and they can have cycles or be acyclic. Graph traversal algorithms include breadth-first search and depth-first search.
  • Stacks and queues are abstract data types that can be implemented using arrays or linked lists. A stack has two primary operations: push (adds an element to the top of the stack) and pop (removes the topmost element from the stack), that follow the Last In, First Out (LIFO) principle. Queues have two main operations: enqueue (adds an element to the rear of the queue) and dequeue (removes an element from the front of the queue) that follow the First In, First Out (FIFO) principle.
  • Trees represent a hierarchical organization of elements. A tree consists of nodes connected by edges, with one node being the root and all other nodes forming subtrees. Trees are widely used in various algorithms and data storage scenarios. Binary trees (particularly heaps), AVL trees, and B-trees are some popular types of trees. They enable efficient and optimal searching, sorting, and hierarchical representation of data.

A trie, or prefix tree, is a special type of tree used to efficiently retrieve strings. In a trie, each node represents a character of a string, and the edges between nodes represent the characters that connect them. This structure is especially useful for tasks like autocomplete, spell-checking, and creating dictionaries. Tries allow for quick searches and operations based on string prefixes.

Language support

Most assembly languages and some low-level languages, such as BCPL (Basic Combined Programming Language), lack built-in support for data structures. On the other hand, many high-level programming languages and some higher-level assembly languages, such as MASM, have special syntax or other built-in support for certain data structures, such as records and arrays. For example, the C (a direct descendant of BCPL) and Pascal languages support structs and records, respectively, in addition to vectors (one-dimensional arrays) and multi-dimensional arrays.[14][15]

Most programming languages feature some sort of library mechanism that allows data structure implementations to be reused by different programs. Modern languages usually come with standard libraries that implement the most common data structures. Examples are the C++ Standard Template Library, the Java Collections Framework, and the Microsoft .NET Framework.

Modern languages also generally support modular programming, the separation between the interface of a library module and its implementation. Some provide opaque data types that allow clients to hide implementation details. Object-oriented programming languages, such as C++, Java, and Smalltalk, typically use classes for this purpose.

Many known data structures have concurrent versions which allow multiple computing threads to access a single concrete instance of a data structure simultaneously.[16]

See also

References

  1. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009). Introduction to Algorithms, Third Edition (3rd ed.). The MIT Press. ISBN 978-0262033848.
  2. ^ Black, Paul E. (15 December 2004). "data structure". In Pieterse, Vreda; Black, Paul E. (eds.). Dictionary of Algorithms and Data Structures [online]. National Institute of Standards and Technology. Retrieved 2018-11-06.
  3. ^ "Data structure". Encyclopaedia Britannica. 17 April 2017. Retrieved 2018-11-06.
  4. ^ Wegner, Peter; Reilly, Edwin D. (2003-08-29). Encyclopedia of Computer Science. Chichester, UK: John Wiley and Sons. pp. 507–512. ISBN 978-0470864128.
  5. ^ "Abstract Data Types". Virginia Tech - CS3 Data Structures & Algorithms. Archived from the original on 2023-02-10. Retrieved 2023-02-15.
  6. ^ Gavin Powell (2006). "Chapter 8: Building Fast-Performing Database Models". Beginning Database Design. Wrox Publishing. ISBN 978-0-7645-7490-0. Archived from the original on 2007-08-18.{{cite book}}: CS1 maint: unfit URL (link)
  7. ^ "1.5 Applications of a Hash Table". University of Regina - CS210 Lab: Hash Table. Archived from the original on 2021-04-27. Retrieved 2018-06-14.
  8. ^ "When data is too big to fit into the main memory". Indiana University Bloomington - Data Structures (C343/A594). 2014. Archived from the original on 2018-04-10.
  9. ^ Vaishnavi, Gunjal; Shraddha, Gavane; Yogeshwari, Joshi (2021-06-21). "Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning" (PDF). International Journal of Computer Applications. 183 (11): 47–49. doi:10.5120/ijca2021921427.
  10. ^ Nievergelt, Jürg; Widmayer, Peter (2000-01-01), Sack, J. -R.; Urrutia, J. (eds.), "Chapter 17 - Spatial Data Structures: Concepts and Design Choices", Handbook of Computational Geometry, Amsterdam: North-Holland, pp. 725–764, ISBN 978-0-444-82537-7, retrieved 2023-11-12
  11. ^ Dubey, R. C. (2014). Advanced biotechnology : For B Sc and M Sc students of biotechnology and other biological sciences. New Delhi: S Chand. ISBN 978-81-219-4290-4. OCLC 883695533.
  12. ^ Seymour, Lipschutz (2014). Data structures (Revised first ed.). New Delhi, India: McGraw Hill Education. ISBN 9781259029967. OCLC 927793728.
  13. ^ Walter E. Brown (September 29, 1999). "C++ Language Note: POD Types". Fermi National Accelerator Laboratory. Archived from the original on 2016-12-03. Retrieved 6 December 2016.
  14. ^ "The GNU C Manual". Free Software Foundation. Retrieved 2014-10-15.
  15. ^ Van Canneyt, Michaël (September 2017). "Free Pascal: Reference Guide". Free Pascal.
  16. ^ Mark Moir and Nir Shavit. "Concurrent Data Structures" (PDF). cs.tau.ac.il. Archived from the original (PDF) on 2011-04-01.

Bibliography

Further reading

Read other articles:

Para otros usos de este término, véase Augusto Ramírez. Augusto Ramírez Ocampo Ministro de Relaciones Exteriores de Colombia 1984-1986Presidente Belisario BetancurPredecesor Rodrigo Lloreda CaicedoSucesor Julio Londoño Paredes Alcalde Mayor de Bogotá agosto de 1982-julio de 1984Presidente Belisario BetancurPredecesor Hernando Durán DussánSucesor Hisnardo Ardila Díaz Información personalNacimiento 21 de septiembre de 1934 Colombia, BogotáFallecimiento 14 de junio de 2011, (77 a...

العلاقات اليونانية الباربادوسية اليونان باربادوس   اليونان   باربادوس تعديل مصدري - تعديل   العلاقات اليونانية الباربادوسية هي العلاقات الثنائية التي تجمع بين اليونان وباربادوس.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتي

Miss Nicaragua 2011Fecha 26 de febrero de 2011Presentador Iván Taylor y Xiomara BlandinoEntretenimiento Recinto sede Teatro Nacional Rubén Darío, Managua, NicaraguaSubsede Hotel Barceló ManaguaEmitido por TelevicentroCandidatas 14Retirados Carazo y RivasRegreso MatagalpaGanadora Adriana Dorn  ManaguaSimpatía María Esther CortésFotogénica Angela BrooksCronología Miss Nicaragua 2010(Scharllette Allen) Miss Nicaragua 2011 Miss Nicaragua 2012(Farah Eslaquit) [editar datos en Wi...

Israel KnohlNama asalישראל קנוהלLahir13 Maret 1952 (umur 71)KebangsaanIsraelPekerjaanCendekiawan BiblikalAnak3 Israel Knohl (Ibrani: ישראל קנוהל; lahir 13 Maret 1952) adalah seorang cendekiawan dan sejarawan Alkitab Israel. Ia merupakan Profesor Kajian Biblikal Yehezkel Kaufmann di Universitas Ibrani Yerusalem dan Anggota Senior di Institut Shalom Hartman di Yerusalem. Buku-bukunya menghubung-hubungkan temuan-temuan saintifik dan arkeologi dengan catatan Alki...

Ini adalah nama Batak Pakpak, marganya adalah Tumanggor. Master Parulian TumanggorBupati Dairi ke-18Masa jabatan19 April 1999 – 19 April 2009PresidenBacharuddin Jusuf HabibieAbdurrahman WahidMegawati SoekarnoputriSusilo Bambang YudhoyonoGubernurTengku Rizal NurdinRudolf PardedeSyamsul ArifinGatot Pujo NugrohoPendahuluSabam Isodorus SihotangPenggantiJohnny Sitohang Informasi pribadiLahir31 Oktober 1950 (umur 73)Tigalingga, Dairi, Sumatera UtaraSuami/istriHetty br. SitinjakA...

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (janvier 2015). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » En pratique : Quelles sources sont attendues ? Co...

San Isidro Distrito Parroquia San Isidro Labrador San IsidroLocalización de San Isidro en Costa Rica San IsidroLocalización de San Isidro en Provincia de San José San IsidroCoordenadas 9°58′25″N 83°59′10″O / 9.9736938, -83.9861212Entidad Distrito • País  Costa Rica • Provincia  San José • Cantón  Vázquez de CoronadoSíndico Ana Lucrecia Durán Fernández (PRSC)Superficie   • Total 5,14 km² Altitud  ...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Gloria U2 song – news · newspapers · books · scholar · JSTOR (May 2008) (Learn how and when to remove this template message) 1981 single by U2GloriaUK/Irish cover, also used for the Australian limited edition releaseSingle by U2from the album October Relea...

Pour un article plus général, voir Rivalité entre l'Algérie et l'Égypte en football. Algérie-Égypte La seule défaite de l'Algérie a eu lieu au stade international du Caire. Contexte Compétition Tour préliminairede la Coupe du monde 2010 Résultat Équipe 1 Algérie Équipe 2 Égypte Score 4 - 3 Match allerMi-temps 3 - 1 (0 - 0) Match retourMi-temps 2 - 0 (1 - 0) Match d'appuiMi-temps 1 - 0 (1 - 0) Match aller Date 7 juin 2009 Stade Stade Mustapha Tchaker Lieu Blida Buteur(s) 6...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bank of America Plaza Chicago – news · newspapers · books · scholar · JSTOR (April 2022) (Learn how and when to remove this template message) Building in Chicago, Illinois USA540 West MadisonGeneral informationLocation540 West MadisonChicago, Illinois USAC...

For other uses, see Alaçam (disambiguation). District and municipality in Samsun, TurkeyAlaçamDistrict and municipalityMap showing Alaçam District in Samsun ProvinceAlaçamLocation in TurkeyCoordinates: 41°36′36″N 35°35′42″E / 41.61000°N 35.59500°E / 41.61000; 35.59500CountryTurkeyProvinceSamsunGovernment • Mayorİlyas Acar (MHP)Area598 km2 (231 sq mi)Population (2022)[1]24,647 • Density41/km2 (110/sq&#...

Series of short subject films Serial (film) redirects here. For the comedy film, see Serial (1980 film). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Serial film – news · newspapers · books · scholar · JSTOR (August 2012) (Learn how and when to remove this template message) Poster for episode 6 of The Per...

Untuk album Mel Tormé / Buddy Rich dengan judul yang sama, lihat Together Again: For the First Time. Together Again For The First TimeAlbum studio karya PulleyDirilis9 Oktober 2001Direkam2001GenrePunk rock, Skate punk, Melodic hardcoreDurasi29:56LabelEpitaphProduserRyan GreeneKronologi Pulley @#!*(1999) Together Again For The First Time(2001) Matters(2004) Together Again for the First Time adalah album full-length keempat oleh grup band punk rock Pulley. Daftar lagu In Search – 2:11 Ho...

Road in Perth, Western Australia Karrinyup RoadWestern AustraliaLooking east towards Francis Avenue in KarrinyupGeneral informationTypeHighwayLength8.0 km (5.0 mi)Opened1950sRoute number(s) State Route 76 (Karrinyup – Balcatta)Tourist routes Tourist Drive 204 (Trigg)Major junctionsWest end West Coast Drive (Tourist Drive 204), Trigg  Marmion Avenue (State Route 71) West Coast Highway (State Route 71 / Tourist Drive 204) Mitchell Freeway (State Route&#...

This article is about a film. For the religious usages, see Living God. This article is an orphan, as no other articles link to it. Please introduce links to this page from related articles; try the Find link tool for suggestions. (July 2022) 2015 filmThe Living God: Medicine and The Ancient Meetei CivilizationA poster of the The Living God- Medicine and The Ancient Meetei CivilizationDirected byPrakas Aheibam[1][2]Written byPrakas Aheibam[1][2]Based onMedicine...

Environmental engineer This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Catherine Mulligan – news · newspapers · books · scholar · JSTOR (June 2019) (Learn how and when to remove this template message) Catherine MulliganAwardsFellow of the Canadian Academy of Engineering John B. Stirling Medal, Engineering Institute of CanadaAcademic backgroundAlma mater...

Dragon's Gate First editionAuthorLaurence YepCountryUnited StatesLanguageEnglishSeriesGolden Mountain ChroniclesGenreChildren's literature, historical fictionPublishedHarperCollins (1995)Media typePaperbackPages352ISBN0-06-440489-7Preceded byMountain Light Followed byThe Traitor  Dragon's Gate is a children's historical novel by Laurence Yep, published by HarperCollins in 1995. It inaugurated the Golden Mountain Chronicles and is the third chronicle in narrative seque...

Ancient Greek deity and herald of the gods For other uses, see Hermes (disambiguation). HermesGod of boundaries, roads, travelers, thieves, athletes, shepherds, commerce, speed, cunning, wit, politics, diplomacy, messaging, and humor.Member of the Twelve OlympiansHermes Ingenui (Vatican Museums), Roman copy of the second century BC after a Greek original of the 5th century BC. Hermes has a kerykeion (caduceus), kithara, petasos (round hat) and a traveler's cloak.AbodeMount OlympusPlanetMercur...

Ocna SibiuluiKota Lambang kebesaranLetak Ocna SibiuluiNegara RumaniaCountyCounty SibiuStatusKotaPemerintahan • Wali kotaIoan Balteș (Partidul Social Democrat)Luas • Total87,46 km2 (3,377 sq mi)Populasi (2011) • Total3.372Zona waktuUTC+2 (EET) • Musim panas (DST)UTC+3 (EEST) Populasi historis Tahun JumlahPend.  ±%   1912 4.048—     1977 5.048+24.7% 1992 4.423−12.4% 2002 4.184...

List of Presiding Patriarchs in the LDS Church Originally, the office of Presiding Patriarch was one of the highest and most important offices of the church's priesthood. When a Presiding Patriarch has existed, the church has sustained the person as a prophet, seer, and revelator.[1] In the history of the LDS Church, there have been eight Presiding Patriarchs, three Acting Presiding Patriarchs, and one Patriarch Emeritus. From 4 February 1932 until 1937 the office was officially left ...

Kembali kehalaman sebelumnya