Edit count of the user (user_editcount ) | 0 |
Name of the user account (user_name ) | 'HeyCoach' |
Age of the user account (user_age ) | 17233 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*',
1 => 'user'
] |
Rights that the user has (user_rights ) | [
0 => 'createaccount',
1 => 'read',
2 => 'edit',
3 => 'createtalk',
4 => 'writeapi',
5 => 'viewmyprivateinfo',
6 => 'editmyprivateinfo',
7 => 'editmyoptions',
8 => 'abusefilter-log-detail',
9 => 'urlshortener-create-url',
10 => 'centralauth-merge',
11 => 'abusefilter-view',
12 => 'abusefilter-log',
13 => 'vipsscaler-test',
14 => 'collectionsaveasuserpage',
15 => 'reupload-own',
16 => 'move-rootuserpages',
17 => 'createpage',
18 => 'minoredit',
19 => 'editmyusercss',
20 => 'editmyuserjson',
21 => 'editmyuserjs',
22 => 'sendemail',
23 => 'applychangetags',
24 => 'viewmywatchlist',
25 => 'editmywatchlist',
26 => 'spamblacklistlog',
27 => 'mwoauthmanagemygrants'
] |
Whether the user is editing from mobile app (user_app ) | false |
Whether or not a user is editing through the mobile interface (user_mobile ) | false |
Page ID (page_id ) | 8519 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | 'Data structure' |
Full page title (page_prefixedtitle ) | 'Data structure' |
Edit protection level of the page (page_restrictions_edit ) | [] |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => 'Mindmatrix',
1 => '2404:160:812D:ACDC:1:0:BF22:34BD',
2 => 'AdaHephais',
3 => 'Tea2min',
4 => '2001:FB1:155:EB62:9191:BFAB:BB34:3F26',
5 => 'Guy Harris',
6 => 'Augi.hdg',
7 => 'Drmies',
8 => 'Wikiwaala2',
9 => '202.191.105.22'
] |
Page age in seconds (page_age ) | 700089874 |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | 'Data Structures and Algorithms, is a core area in computer science vital for efficient problem-solving and software development. It's especially crucial for technical interviews at top tech firms like MAANG (Meta, Apple, Amazon, Netflix, Google).' |
Old content model (old_content_model ) | 'wikitext' |
New content model (new_content_model ) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext ) | '{{short description|Particular way of storing and organizing data in a computer}}
{{hatgrp|
{{otheruses}}
{{distinguish|Data type|Data model}}
}}
{{For|information on Wikipedia's data structure|Wikipedia:Administration#Data structure and development|selfref=yes}}
[[Image:Hash table 3 1 1 0 1 0 0 SP.svg|thumb|315px|A data structure known as a [[hash table]].]]
In [[computer science]], a '''data structure''' is a [[data]] organization, management, and storage format that is usually chosen for [[Efficiency|efficient]] [[Data access|access]] to data.<ref>{{Cite book|url=https://dl.acm.org/citation.cfm?id=1614191|title=Introduction to Algorithms, Third Edition|last=Cormen|first=Thomas H.|last2=Leiserson|first2=Charles E.|last3=Rivest|first3=Ronald L.|last4=Stein|first4=Clifford|date=2009|publisher=The MIT Press|isbn=978-0262033848|edition=3rd}}</ref><ref>{{cite book |last1=Black |first1=Paul E. |editor1-last=Pieterse |editor1-first=Vreda |editor2-last=Black |editor2-first=Paul E. |title=Dictionary of Algorithms and Data Structures [online] |date=15 December 2004 |publisher=[[National Institute of Standards and Technology]] |chapter-url=https://xlinux.nist.gov/dads/HTML/datastructur.html |access-date=2018-11-06 |chapter=data structure}}</ref><ref>{{cite encyclopedia |encyclopedia=Encyclopaedia Britannica |title= Data structure |url=https://www.britannica.com/technology/data-structure |access-date=2018-11-06 |date=17 April 2017}}</ref> More precisely, a data structure is a collection of data values, the relationships among them, and the [[Function (computer programming)|functions]] or [[Operator (computer programming)|operations]] that can be applied to the data,<ref>{{Cite book|url=http://dl.acm.org/citation.cfm?id=1074100.1074312|title=Encyclopedia of Computer Science|last=Wegner|first=Peter|last2=Reilly|first2=Edwin D.|publisher=John Wiley and Sons |isbn=978-0470864128|location=Chichester, UK|pages=507–512|date=2003-08-29}}</ref> i.e., it is an [[algebraic structure]] about [[data]].
==Usage ==
Data structures serve as the basis for [[abstract data type]]s (ADT). The ADT defines the logical form of the data type. The data structure implements the physical form of the [[data type]].<ref>{{cite web|title=Abstract Data Types|url=https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html|website=Virginia Tech - CS3 Data Structures & Algorithms|access-date=2023-02-15|archive-url=https://web.archive.org/web/20230210114105/https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html|archive-date=2023-02-10|url-status=live}}</ref>
Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, [[Relational database|relational databases]] commonly use [[B-tree]] indexes for data retrieval,<ref>{{cite book|chapter-url=http://searchsecurity.techtarget.com/generic/0,295582,sid87_gci1184450,00.html|archive-url=https://web.archive.org/web/20070818140343/http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1184450,00.html|archive-date=2007-08-18|url-status=usurped|title=Beginning Database Design|isbn=978-0-7645-7490-0|author=Gavin Powell|chapter=Chapter 8: Building Fast-Performing Database Models|publisher=[[Wrox Press|Wrox Publishing]]|year=2006}}</ref> while [[compiler]] [[Implementation|implementations]] usually use [[hash table]]s to look up [[Identifier|identifiers]].<ref>{{cite web |title=1.5 Applications of a Hash Table |url=http://www.cs.uregina.ca/Links/class-info/210/Hash/ |website=University of Regina - CS210 Lab: Hash Table |access-date=2018-06-14 |archive-date=2021-04-27 |archive-url=https://web.archive.org/web/20210427183057/https://www.cs.uregina.ca/Links/class-info/210/Hash/ |url-status=dead }}</ref>
Data structures provide a means to manage large amounts of data efficiently for uses such as large [[database]]s and internet indexing services. Usually, efficient data structures are key to designing efficient [[algorithm]]s. Some formal design methods and [[programming language]]s 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 [[Computer data storage|secondary memory]].<ref>{{cite web |title=When data is too big to fit into the main memory | archive-url=https://web.archive.org/web/20180410032656/http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php | url-status=dead | archive-date=2018-04-10 |url=http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php |website=Indiana University Bloomington - Data Structures (C343/A594)|year=2014}}</ref>
==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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [[linked data structure]]s 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref>
The implementation of a data structure usually requires writing a set of [[subroutine|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).<ref>{{Cite book|title=Advanced biotechnology : For B Sc and M Sc students of biotechnology and other biological sciences.|last=Dubey, R. C.|date=2014|publisher=S Chand|isbn=978-81-219-4290-4|location=New Delhi|oclc=883695533}}</ref>
==Examples==
{{main article|List of data structures}}
[[File:Python 3. The standard type hierarchy.png|thumb|The standard [[Data type|type]] hierarchy of the programming language [[Python_(programming_language) | Python 3]].]]
There are numerous types of data structures, generally built upon simpler [[primitive data type]]s. Well known examples are:<ref>{{Cite book|title=Data structures|last=Seymour|first=Lipschutz|date=2014|publisher=McGraw Hill Education|isbn=9781259029967|edition=Revised first|location=New Delhi, India|oclc=927793728}}</ref>
* An [[Array (data structure)|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 (computer science)|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 structure]]s to distinguish them from objects.<ref>{{cite web|url=http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html |access-date=6 December 2016 |title=C++ Language Note: POD Types |author=Walter E. Brown |publisher=[[Fermi National Accelerator Laboratory]] |date=September 29, 1999|archive-url=https://web.archive.org/web/20161203130543/http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html|archive-date=2016-12-03}}</ref>
* [[Hash table]]s, 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.
* [[Graph (abstract data type)|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.
* [[Stack (abstract data type)|Stacks]] and [[queue (abstract data type)|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.
* [[Tree (data structure)|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 tree]]s (particularly [[Heap (data structure)|heap]]s), [[AVL tree]]s, and [[B-tree]]s are some popular types of trees. They enable efficient and optimal searching, sorting, and hierarchical representation of data.
* A [[trie]], also known as a prefix tree, is a specialized tree data structure used for the efficient retrieval of strings. Tries store characters of a string as nodes, with each edge representing a character. They are particularly useful in text processing scenarios like autocomplete, spell-checking, and dictionary implementations. Tries enable fast searching and prefix-based operations on strings.
==Language support==
Most [[assembly language]]s and some [[Low-level programming language|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 language]]s 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 (programming language)|C]] (a direct descendant of BCPL) and [[Pascal (programming language)|Pascal]] languages support [[Record (computer science)|structs]] and records, respectively, in addition to vectors (one-dimensional [[array data type|arrays]]) and multi-dimensional arrays.<ref name="gnu-c">{{cite web | url=https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html | title=The GNU C Manual | publisher=Free Software Foundation | access-date=2014-10-15}}</ref><ref>{{cite web | url=http://www.freepascal.org/docs-html/ref/ref.html | title=Free Pascal: Reference Guide | publisher=Free Pascal |first = Michaël |last =Van Canneyt|date = September 2017}}</ref>
Most programming languages feature some sort of [[Library (computing)|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 (computing)|interface]] of a library module and its implementation. Some provide [[opaque data type]]s that allow clients to hide implementation details. [[Object-oriented programming language]]s, such as [[C++]], [[Java (programming language)|Java]], and [[Smalltalk]], typically use [[classes (computer science)|classes]] for this purpose.
Many known data structures have [[concurrent data structure|concurrent]] versions which allow multiple computing threads to access a single concrete instance of a data structure simultaneously.<ref>{{cite web |author1=Mark Moir and Nir Shavit |title=Concurrent Data Structures |url=https://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf |archive-url=https://web.archive.org/web/20110401070433/http://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf |archive-date=2011-04-01 |url-status=dead |website=cs.tau.ac.il}}</ref>
==See also==
{{Div col|colwidth=15em}}
* [[Abstract data type]]
* [[Concurrent data structure]]
* [[Data model]]
* [[Dynamization]]
* [[Linked data structure]]
* [[List of data structures]]
* [[Persistent data structure]]
* [[Plain old data structure]]
* [[Queap]]
* [[Succinct data structure]]
* [[Tree (data structure)]]
{{Div col end}}
==References==
{{Reflist}}
==Bibliography==
* Peter Brass, ''Advanced Data Structures'', [[Cambridge University Press]], 2008, {{ISBN|978-0521880374}}
* [[Donald Knuth]], ''[[The Art of Computer Programming]]'', vol. 1. [[Addison-Wesley]], 3rd edition, 1997, {{ISBN|978-0201896831}}
* Dinesh Mehta and [[Sartaj Sahni]], ''Handbook of Data Structures and Applications'', [[Chapman and Hall]]/[[CRC Press]], 2004, {{ISBN|1584884355}}
* [[Niklaus Wirth]], ''Algorithms and Data Structures'', [[Prentice Hall]], 1985, {{ISBN|978-0130220059}}
==Further reading==
* [[Alfred Aho]], [[John Hopcroft]], and [[Jeffrey Ullman]], ''Data Structures and Algorithms'', Addison-Wesley, 1983, {{ISBN|0-201-00023-7}}
* [[Gaston Gonnet|G. H. Gonnet]] and [[Ricardo Baeza-Yates|R. Baeza-Yates]], ''[https://users.dcc.uchile.cl/~rbaeza/handbook/hbook.html Handbook of Algorithms and Data Structures - in Pascal and C]'', second edition, Addison-Wesley, 1991, {{ISBN|0-201-41607-7}}
* [[Ellis Horowitz]] and Sartaj Sahni, ''Fundamentals of Data Structures in Pascal'', [[Computer Science Press]], 1984, {{ISBN|0-914894-94-3}}
==External links==
{{Sister project links|wikt=data structure|commons=Category:Data structures|b=Data Structures|v=Topic:Data structures|n=no}}
* [https://web.archive.org/web/20050624234059/http://www.nist.gov/dads/ Descriptions] from the [[Dictionary of Algorithms and Data Structures]]
* [http://www.cs.auckland.ac.nz/software/AlgAnim/ds_ToC.html Data structures course]
* [http://msdn.microsoft.com/en-us/library/aa289148(VS.71).aspx An Examination of Data Structures from .NET perspective]
* [http://people.cs.vt.edu/~shaffer/Book/C++3e20110915.pdf Schaffer, C. ''Data Structures and Algorithm Analysis'']
{{Data structures}}
{{Data types}}
{{Data model}}
{{Strings}}
{{Authority control}}
{{DEFAULTSORT:Data Structure}}
[[Category:Data structures| ]]' |
New page wikitext, after the edit (new_wikitext ) | '{{short description|Particular way of storing and organizing data in a computer}}
{{hatgrp|
{{otheruses}}
{{distinguish|Data type|Data model}}
}}
{{For|information on Wikipedia's data structure|Wikipedia:Administration#Data structure and development|selfref=yes}}
[[Image:Hash table 3 1 1 0 1 0 0 SP.svg|thumb|315px|A data structure known as a [[hash table]].]]
In [[computer science]], a '''data structure''' is a [[data]] organization, management, and storage format that is usually chosen for [[Efficiency|efficient]] [[Data access|access]] to data.<ref>{{Cite book|url=https://dl.acm.org/citation.cfm?id=1614191|title=Introduction to Algorithms, Third Edition|last=Cormen|first=Thomas H.|last2=Leiserson|first2=Charles E.|last3=Rivest|first3=Ronald L.|last4=Stein|first4=Clifford|date=2009|publisher=The MIT Press|isbn=978-0262033848|edition=3rd}}</ref><ref>{{cite book |last1=Black |first1=Paul E. |editor1-last=Pieterse |editor1-first=Vreda |editor2-last=Black |editor2-first=Paul E. |title=Dictionary of Algorithms and Data Structures [online] |date=15 December 2004 |publisher=[[National Institute of Standards and Technology]] |chapter-url=https://xlinux.nist.gov/dads/HTML/datastructur.html |access-date=2018-11-06 |chapter=data structure}}</ref><ref>{{cite encyclopedia |encyclopedia=Encyclopaedia Britannica |title= Data structure |url=https://www.britannica.com/technology/data-structure |access-date=2018-11-06 |date=17 April 2017}}</ref> More precisely, a data structure is a collection of data values, the relationships among them, and the [[Function (computer programming)|functions]] or [[Operator (computer programming)|operations]] that can be applied to the data,<ref>{{Cite book|url=http://dl.acm.org/citation.cfm?id=1074100.1074312|title=Encyclopedia of Computer Science|last=Wegner|first=Peter|last2=Reilly|first2=Edwin D.|publisher=John Wiley and Sons |isbn=978-0470864128|location=Chichester, UK|pages=507–512|date=2003-08-29}}</ref> i.e., it is an [[algebraic structure]] about [[data]].
==Usage ==
Data structures serve as the basis for [[abstract data type]]s (ADT). The ADT defines the logical form of the data type. The data structure implements the physical form of the [[data type]].<ref>{{cite web|title=Abstract Data Types|url=https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html|website=Virginia Tech - CS3 Data Structures & Algorithms|access-date=2023-02-15|archive-url=https://web.archive.org/web/20230210114105/https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html|archive-date=2023-02-10|url-status=live}}</ref>
Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, [[Relational database|relational databases]] commonly use [[B-tree]] indexes for data retrieval,<ref>{{cite book|chapter-url=http://searchsecurity.techtarget.com/generic/0,295582,sid87_gci1184450,00.html|archive-url=https://web.archive.org/web/20070818140343/http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1184450,00.html|archive-date=2007-08-18|url-status=usurped|title=Beginning Database Design|isbn=978-0-7645-7490-0|author=Gavin Powell|chapter=Chapter 8: Building Fast-Performing Database Models|publisher=[[Wrox Press|Wrox Publishing]]|year=2006}}</ref> while [[compiler]] [[Implementation|implementations]] usually use [[hash table]]s to look up [[Identifier|identifiers]].<ref>{{cite web |title=1.5 Applications of a Hash Table |url=http://www.cs.uregina.ca/Links/class-info/210/Hash/ |website=University of Regina - CS210 Lab: Hash Table |access-date=2018-06-14 |archive-date=2021-04-27 |archive-url=https://web.archive.org/web/20210427183057/https://www.cs.uregina.ca/Links/class-info/210/Hash/ |url-status=dead }}</ref>
Data structures provide a means to manage large amounts of data efficiently for uses such as large [[database]]s and internet indexing services. Usually, efficient data structures are key to designing efficient [[algorithm]]s. Some formal design methods and [[programming language]]s 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 [[Computer data storage|secondary memory]].<ref>{{cite web |title=When data is too big to fit into the main memory | archive-url=https://web.archive.org/web/20180410032656/http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php | url-status=dead | archive-date=2018-04-10 |url=http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php |website=Indiana University Bloomington - Data Structures (C343/A594)|year=2014}}</ref>
==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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [https://heycoach.in/ linked data structures]<ref>{{Cite web |last=HeyCoach |title=Learn Data Structures,Algorithms and System Design to place at MAANG Companies. |url=https://heycoach.in/ |url-status=live |access-date=1/3/2014 |website=HeyCoach}}</ref><ref>{{Cite web |last=HeyCoach |title=HeyCoach |url=https://heycoach.in/ |access-date=2024-01-03 |website=HeyCoach |language=en}}</ref> 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref>
The implementation of a data structure usually requires writing a set of [[subroutine|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).<ref>{{Cite book|title=Advanced biotechnology : For B Sc and M Sc students of biotechnology and other biological sciences.|last=Dubey, R. C.|date=2014|publisher=S Chand|isbn=978-81-219-4290-4|location=New Delhi|oclc=883695533}}</ref>
==Examples==
{{main article|List of data structures}}
[[File:Python 3. The standard type hierarchy.png|thumb|The standard [[Data type|type]] hierarchy of the programming language [[Python_(programming_language) | Python 3]].]]
There are numerous types of data structures, generally built upon simpler [[primitive data type]]s. Well known examples are:<ref>{{Cite book|title=Data structures|last=Seymour|first=Lipschutz|date=2014|publisher=McGraw Hill Education|isbn=9781259029967|edition=Revised first|location=New Delhi, India|oclc=927793728}}</ref>
* An [[Array (data structure)|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 (computer science)|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 structure]]s to distinguish them from objects.<ref>{{cite web|url=http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html |access-date=6 December 2016 |title=C++ Language Note: POD Types |author=Walter E. Brown |publisher=[[Fermi National Accelerator Laboratory]] |date=September 29, 1999|archive-url=https://web.archive.org/web/20161203130543/http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html|archive-date=2016-12-03}}</ref>
* [[Hash table]]s, 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.
* [[Graph (abstract data type)|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.
* [[Stack (abstract data type)|Stacks]] and [[queue (abstract data type)|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.
* [[Tree (data structure)|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 tree]]s (particularly [[Heap (data structure)|heap]]s), [[AVL tree]]s, and [[B-tree]]s are some popular types of trees. They enable efficient and optimal searching, sorting, and hierarchical representation of data.
* A [[trie]], also known as a prefix tree, is a specialized tree data structure used for the efficient retrieval of strings. Tries store characters of a string as nodes, with each edge representing a character. They are particularly useful in text processing scenarios like autocomplete, spell-checking, and dictionary implementations. Tries enable fast searching and prefix-based operations on strings.
==Language support==
Most [[assembly language]]s and some [[Low-level programming language|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 language]]s 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 (programming language)|C]] (a direct descendant of BCPL) and [[Pascal (programming language)|Pascal]] languages support [[Record (computer science)|structs]] and records, respectively, in addition to vectors (one-dimensional [[array data type|arrays]]) and multi-dimensional arrays.<ref name="gnu-c">{{cite web | url=https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html | title=The GNU C Manual | publisher=Free Software Foundation | access-date=2014-10-15}}</ref><ref>{{cite web | url=http://www.freepascal.org/docs-html/ref/ref.html | title=Free Pascal: Reference Guide | publisher=Free Pascal |first = Michaël |last =Van Canneyt|date = September 2017}}</ref>
Most programming languages feature some sort of [[Library (computing)|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 (computing)|interface]] of a library module and its implementation. Some provide [[opaque data type]]s that allow clients to hide implementation details. [[Object-oriented programming language]]s, such as [[C++]], [[Java (programming language)|Java]], and [[Smalltalk]], typically use [[classes (computer science)|classes]] for this purpose.
Many known data structures have [[concurrent data structure|concurrent]] versions which allow multiple computing threads to access a single concrete instance of a data structure simultaneously.<ref>{{cite web |author1=Mark Moir and Nir Shavit |title=Concurrent Data Structures |url=https://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf |archive-url=https://web.archive.org/web/20110401070433/http://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf |archive-date=2011-04-01 |url-status=dead |website=cs.tau.ac.il}}</ref>
==See also==
{{Div col|colwidth=15em}}
* [[Abstract data type]]
* [[Concurrent data structure]]
* [[Data model]]
* [[Dynamization]]
* [[Linked data structure]]
* [[List of data structures]]
* [[Persistent data structure]]
* [[Plain old data structure]]
* [[Queap]]
* [[Succinct data structure]]
* [[Tree (data structure)]]
{{Div col end}}
==References==
{{Reflist}}
==Bibliography==
* Peter Brass, ''Advanced Data Structures'', [[Cambridge University Press]], 2008, {{ISBN|978-0521880374}}
* [[Donald Knuth]], ''[[The Art of Computer Programming]]'', vol. 1. [[Addison-Wesley]], 3rd edition, 1997, {{ISBN|978-0201896831}}
* Dinesh Mehta and [[Sartaj Sahni]], ''Handbook of Data Structures and Applications'', [[Chapman and Hall]]/[[CRC Press]], 2004, {{ISBN|1584884355}}
* [[Niklaus Wirth]], ''Algorithms and Data Structures'', [[Prentice Hall]], 1985, {{ISBN|978-0130220059}}
==Further reading==
* [[Alfred Aho]], [[John Hopcroft]], and [[Jeffrey Ullman]], ''Data Structures and Algorithms'', Addison-Wesley, 1983, {{ISBN|0-201-00023-7}}
* [[Gaston Gonnet|G. H. Gonnet]] and [[Ricardo Baeza-Yates|R. Baeza-Yates]], ''[https://users.dcc.uchile.cl/~rbaeza/handbook/hbook.html Handbook of Algorithms and Data Structures - in Pascal and C]'', second edition, Addison-Wesley, 1991, {{ISBN|0-201-41607-7}}
* [[Ellis Horowitz]] and Sartaj Sahni, ''Fundamentals of Data Structures in Pascal'', [[Computer Science Press]], 1984, {{ISBN|0-914894-94-3}}
==External links==
{{Sister project links|wikt=data structure|commons=Category:Data structures|b=Data Structures|v=Topic:Data structures|n=no}}
* [https://web.archive.org/web/20050624234059/http://www.nist.gov/dads/ Descriptions] from the [[Dictionary of Algorithms and Data Structures]]
* [http://www.cs.auckland.ac.nz/software/AlgAnim/ds_ToC.html Data structures course]
* [http://msdn.microsoft.com/en-us/library/aa289148(VS.71).aspx An Examination of Data Structures from .NET perspective]
* [http://people.cs.vt.edu/~shaffer/Book/C++3e20110915.pdf Schaffer, C. ''Data Structures and Algorithm Analysis'']
{{Data structures}}
{{Data types}}
{{Data model}}
{{Strings}}
{{Authority control}}
{{DEFAULTSORT:Data Structure}}
[[Category:Data structures| ]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -16,5 +16,5 @@
==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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [[linked data structure]]s 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref>
+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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [https://heycoach.in/ linked data structures]<ref>{{Cite web |last=HeyCoach |title=Learn Data Structures,Algorithms and System Design to place at MAANG Companies. |url=https://heycoach.in/ |url-status=live |access-date=1/3/2014 |website=HeyCoach}}</ref><ref>{{Cite web |last=HeyCoach |title=HeyCoach |url=https://heycoach.in/ |access-date=2024-01-03 |website=HeyCoach |language=en}}</ref> 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref>
The implementation of a data structure usually requires writing a set of [[subroutine|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).<ref>{{Cite book|title=Advanced biotechnology : For B Sc and M Sc students of biotechnology and other biological sciences.|last=Dubey, R. C.|date=2014|publisher=S Chand|isbn=978-81-219-4290-4|location=New Delhi|oclc=883695533}}</ref>
' |
New page size (new_size ) | 17338 |
Old page size (old_size ) | 16976 |
Size change in edit (edit_delta ) | 362 |
Lines added in edit (added_lines ) | [
0 => '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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [https://heycoach.in/ linked data structures]<ref>{{Cite web |last=HeyCoach |title=Learn Data Structures,Algorithms and System Design to place at MAANG Companies. |url=https://heycoach.in/ |url-status=live |access-date=1/3/2014 |website=HeyCoach}}</ref><ref>{{Cite web |last=HeyCoach |title=HeyCoach |url=https://heycoach.in/ |access-date=2024-01-03 |website=HeyCoach |language=en}}</ref> 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref> '
] |
Lines removed in edit (removed_lines ) | [
0 => '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.<ref>{{Cite journal |last=Vaishnavi |first=Gunjal |last2=Shraddha |first2=Gavane |last3=Yogeshwari |first3=Joshi |date=2021-06-21 |title=Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning |url=http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf |journal=International Journal of Computer Applications |volume=183 |issue=11 |pages=47–49 |doi=10.5120/ijca2021921427}}</ref> 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 (computer programming)|pointer]]—a [[bit]] [[String (computer science)|string]], representing a [[memory address]], that can be itself stored in memory and manipulated by the program. Thus, the [[Array data structure|array]] and [[record (computer science)|record]] data structures are based on computing the addresses of data items with [[arithmetic operations]], while the [[linked data structure]]s 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.<ref>{{Citation |last=Nievergelt |first=Jürg |title=Chapter 17 - Spatial Data Structures: Concepts and Design Choices |date=2000-01-01 |url=https://www.sciencedirect.com/science/article/pii/B9780444825377500188 |work=Handbook of Computational Geometry |pages=725–764 |editor-last=Sack |editor-first=J. -R. |access-date=2023-11-12 |place=Amsterdam |publisher=North-Holland |isbn=978-0-444-82537-7 |last2=Widmayer |first2=Peter |editor2-last=Urrutia |editor2-first=J.}}</ref> '
] |
All external links added in the edit (added_links ) | [
0 => 'https://heycoach.in/'
] |
All external links removed in the edit (removed_links ) | [] |
All external links in the new text (all_links ) | [
0 => 'https://dl.acm.org/citation.cfm?id=1614191',
1 => 'https://xlinux.nist.gov/dads/HTML/datastructur.html',
2 => 'https://www.britannica.com/technology/data-structure',
3 => 'http://dl.acm.org/citation.cfm?id=1074100.1074312',
4 => 'https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html',
5 => 'https://web.archive.org/web/20230210114105/https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html',
6 => 'https://web.archive.org/web/20070818140343/http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1184450,00.html',
7 => 'https://web.archive.org/web/20210427183057/https://www.cs.uregina.ca/Links/class-info/210/Hash/',
8 => 'http://www.cs.uregina.ca/Links/class-info/210/Hash/',
9 => 'https://web.archive.org/web/20180410032656/http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php',
10 => 'http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php',
11 => 'http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf',
12 => 'https://doi.org/10.5120%2Fijca2021921427',
13 => 'https://heycoach.in/',
14 => 'https://www.sciencedirect.com/science/article/pii/B9780444825377500188',
15 => 'https://www.worldcat.org/oclc/883695533',
16 => 'https://www.worldcat.org/oclc/927793728',
17 => 'https://web.archive.org/web/20161203130543/http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html',
18 => 'http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html',
19 => 'https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html',
20 => 'http://www.freepascal.org/docs-html/ref/ref.html',
21 => 'https://web.archive.org/web/20110401070433/http://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf',
22 => 'https://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf',
23 => 'https://www.wikidata.org/wiki/Q175263#identifiers',
24 => 'https://users.dcc.uchile.cl/~rbaeza/handbook/hbook.html',
25 => 'https://web.archive.org/web/20050624234059/http://www.nist.gov/dads/',
26 => 'http://www.cs.auckland.ac.nz/software/AlgAnim/ds_ToC.html',
27 => 'http://msdn.microsoft.com/en-us/library/aa289148(VS.71).aspx',
28 => 'http://people.cs.vt.edu/~shaffer/Book/C++3e20110915.pdf',
29 => 'https://catalogue.bnf.fr/ark:/12148/cb119313298',
30 => 'https://data.bnf.fr/ark:/12148/cb119313298',
31 => 'https://d-nb.info/gnd/4011146-5',
32 => 'http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007543369805171',
33 => 'https://id.loc.gov/authorities/sh85035862',
34 => 'https://id.ndl.go.jp/auth/ndlna/01167757',
35 => 'https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph119336&CON_LNG=ENG'
] |
Links in the page, before the edit (old_links ) | [
0 => 'https://www.sciencedirect.com/science/article/pii/B9780444825377500188',
1 => 'http://www.ijcaonline.org/archives/volume183/number11/vaishnavi-2021-ijca-921427.pdf',
2 => 'https://doi.org/10.5120%2Fijca2021921427',
3 => 'https://www.britannica.com/technology/data-structure',
4 => 'https://web.archive.org/web/20070818140343/http://searchsqlserver.techtarget.com/generic/0,295582,sid87_gci1184450,00.html',
5 => 'https://web.archive.org/web/20210427183057/https://www.cs.uregina.ca/Links/class-info/210/Hash/',
6 => 'http://www.cs.uregina.ca/Links/class-info/210/Hash/',
7 => 'https://web.archive.org/web/20180410032656/http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php',
8 => 'http://homes.sice.indiana.edu/yye/lab/teaching/spring2014-C343/datatoobig.php',
9 => 'https://xlinux.nist.gov/dads/HTML/datastructur.html',
10 => 'https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html',
11 => 'https://web.archive.org/web/20230210114105/https://opendsa-server.cs.vt.edu/ODSA/Books/CS3/html/ADT.html',
12 => 'https://dl.acm.org/citation.cfm?id=1614191',
13 => 'http://dl.acm.org/citation.cfm?id=1074100.1074312',
14 => 'http://olduli.nli.org.il/F/?func=find-b&local_base=NLX10&find_code=UID&request=987007543369805171',
15 => 'http://msdn.microsoft.com/en-us/library/aa289148(VS.71).aspx',
16 => 'http://people.cs.vt.edu/~shaffer/Book/C++3e20110915.pdf',
17 => 'http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html',
18 => 'http://www.cs.auckland.ac.nz/software/AlgAnim/ds_ToC.html',
19 => 'http://www.freepascal.org/docs-html/ref/ref.html',
20 => 'https://users.dcc.uchile.cl/~rbaeza/handbook/hbook.html',
21 => 'https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph119336&CON_LNG=ENG',
22 => 'https://catalogue.bnf.fr/ark:/12148/cb119313298',
23 => 'https://data.bnf.fr/ark:/12148/cb119313298',
24 => 'https://id.loc.gov/authorities/sh85035862',
25 => 'https://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf',
26 => 'https://d-nb.info/gnd/4011146-5',
27 => 'https://id.ndl.go.jp/auth/ndlna/01167757',
28 => 'https://web.archive.org/web/20050624234059/http://www.nist.gov/dads/',
29 => 'https://web.archive.org/web/20110401070433/http://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf',
30 => 'https://web.archive.org/web/20161203130543/http://www.fnal.gov/docs/working-groups/fpcltf/Pkg/ISOcxx/doc/POD.html',
31 => 'https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html',
32 => 'https://www.wikidata.org/wiki/Q175263#identifiers',
33 => 'https://www.worldcat.org/oclc/883695533',
34 => 'https://www.worldcat.org/oclc/927793728'
] |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | false |
Unix timestamp of change (timestamp ) | '1704286878' |