222:
40:
306:, 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.
355:, 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.
261:) 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
323:
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:
312:
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
195:
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,
249:
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
330:
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.
159:
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. Data structures are generally based on the ability of a
406:
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
203:
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
143:
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
207:, 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).
284:
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
324:
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.
686:
761:
250:
implementations allocate contiguous memory words for the elements of arrays (but this is not always a necessity). Arrays may be fixed-length or resizable.
918:
105:
Different types of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example,
584:
985:
2629:
1560:
1191:
664:
2524:
1727:
1236:
2563:
313:
undirected, and they can have cycles or be acyclic. Graph traversal algorithms include breadth-first search and depth-first search.
732:
2489:
2098:
1732:
2494:
2250:
1722:
1717:
347:
are some popular types of trees. They enable efficient and optimal searching, sorting, and hierarchical representation of data.
1530:
922:
860:
830:
702:
2499:
2161:
1705:
1606:
441:
383:, have special syntax or other built-in support for certain data structures, such as records and arrays. For example, the
467:
versions which allow multiple computing threads to access a single concrete instance of a data structure simultaneously.
2710:
2484:
1099:
1052:
1029:
784:
640:
559:
2578:
2519:
2391:
1883:
1469:
1175:
1154:
1131:
893:
2426:
2358:
1856:
1259:
1039:
376:
125:
98:(ADT). The ADT defines the logical form of the data type. The data structure implements the physical form of the
75:
71:
769:
70:
to data. More precisely, a data structure is a collection of data values, the relationships among them, and the
2606:
1973:
1778:
1710:
1672:
1264:
1078:
368:
165:
2246:
1229:
718:
388:
230:
1338:
2611:
2466:
2333:
1873:
1803:
1651:
375:(Basic Combined Programming Language), lack built-in support for data structures. On the other hand, many
2690:
2416:
2128:
1763:
1343:
1326:
926:
818:
449:
293:
2695:
2573:
2540:
2476:
1751:
1542:
1309:
1304:
1187:
1021:
853:
Advanced biotechnology : For B Sc and M Sc students of biotechnology and other biological sciences
457:
415:
320:
316:
309:
2705:
2601:
2545:
2446:
2400:
2328:
2307:
2061:
2013:
1925:
1903:
1898:
1826:
1692:
1646:
1299:
507:
482:
464:
411:
392:
269:
184:
172:
2741:
2700:
2504:
2436:
2302:
2154:
1935:
1599:
1333:
1292:
1222:
512:
384:
297:
131:
Data structures provide a means to manage large amounts of data efficiently for uses such as large
996:
135:
and internet indexing services. Usually, efficient data structures are key to designing efficient
2649:
2088:
2003:
1573:
1550:
522:
502:
216:
656:
2241:
1831:
1687:
1641:
1555:
1355:
1201:
1167:
246:
948:
2654:
2596:
2456:
2384:
1821:
1796:
1481:
1436:
1398:
1196:
527:
497:
433:
336:
327:
192:
188:
148:
2461:
2338:
1623:
1421:
180:
140:
1206:
1145:
8:
2659:
2266:
2147:
2093:
2071:
1998:
1851:
1843:
1592:
1140:
429:
403:
238:
106:
79:
221:
2588:
2555:
2261:
2215:
2076:
2056:
2008:
1983:
1768:
1737:
1464:
1449:
1314:
1274:
712:
604:
477:
204:
95:
740:
576:
2720:
2292:
2287:
2271:
2210:
2184:
1963:
1893:
1868:
1682:
1677:
1383:
1282:
1171:
1150:
1127:
1095:
1074:
1048:
1025:
899:
889:
866:
856:
826:
698:
636:
555:
548:
Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009).
364:
630:
2715:
2685:
2639:
2441:
2377:
2348:
2256:
2108:
1993:
1791:
1406:
1066:
970:
799:
785:"Survey Paper on Fine-Grained Facial Expression Recognition using Machine Learning"
437:
52:
817:
Nievergelt, JĂĽrg; Widmayer, Peter (2000-01-01), Sack, J. -R.; Urrutia, J. (eds.),
2568:
2509:
2421:
2323:
2220:
2113:
1978:
1930:
1863:
1426:
1368:
396:
179:, that can be itself stored in memory and manipulated by the program. Thus, the
2514:
2343:
2236:
1888:
1878:
1786:
1518:
1496:
1321:
1159:
1119:
1044:
422:
281:
176:
117:
39:
2735:
2431:
2408:
2189:
1988:
1491:
1388:
1373:
1136:
1115:
1091:
1083:
903:
870:
549:
262:
2634:
2451:
2297:
1945:
1920:
1058:
1034:
803:
492:
196:
leading to optimized performance in sequential data processing scenarios.
237:
There are numerous types of data structures, generally built upon simpler
2644:
2123:
2118:
1968:
1915:
1742:
1486:
1411:
332:
254:
199:
The implementation of a data structure usually requires writing a set of
144:
67:
187:
data structures are based on computing the addresses of data items with
2353:
2170:
2028:
2023:
1940:
1908:
1813:
1756:
1474:
1378:
1111:
694:
487:
303:
200:
121:
64:
44:
32:
21:
2103:
2081:
2038:
2033:
1700:
1656:
1615:
1416:
1363:
1070:
783:
Vaishnavi, Gunjal; Shraddha, Gavane; Yogeshwari, Joshi (2021-06-21).
453:
419:
226:
136:
99:
28:
2018:
1513:
1459:
1287:
888:(Revised first ed.). New Delhi, India: McGraw Hill Education.
819:"Chapter 17 - Spatial Data Structures: Concepts and Design Choices"
395:
and records, respectively, in addition to vectors (one-dimensional
340:
164:
to fetch and store data at any place in its memory, specified by a
161:
132:
114:
1214:
2680:
1508:
1454:
265:
to a certain element, are however slower on lists than on arrays.
1503:
1444:
344:
110:
2139:
1584:
517:
445:
408:
1146:
Handbook of
Algorithms and Data Structures - in Pascal and C
766:
Indiana
University Bloomington - Data Structures (C343/A594)
2664:
1636:
1525:
782:
380:
372:
352:
83:
63:
organization and storage format that is usually chosen for
60:
16:
Particular way of storing and organizing data in a computer
2369:
547:
1631:
635:. Chichester, UK: John Wiley and Sons. pp. 507–512.
436:
of a library module and its implementation. Some provide
169:
1202:
An
Examination of Data Structures from .NET perspective
687:"Chapter 8: Building Fast-Performing Database Models"
983:
661:
440:that allow clients to hide implementation details.
816:
762:"When data is too big to fit into the main memory"
379:and some higher-level assembly languages, such as
2733:
402:Most programming languages feature some sort of
78:that can be applied to the data, i.e., it is an
916:
825:, Amsterdam: North-Holland, pp. 725–764,
792:International Journal of Computer Applications
629:Wegner, Peter; Reilly, Edwin D. (2003-08-29).
585:National Institute of Standards and Technology
2385:
2155:
1600:
1230:
581:Dictionary of Algorithms and Data Structures
579:. In Pieterse, Vreda; Black, Paul E. (eds.).
1192:Dictionary of Algorithms and Data Structures
1063:Handbook of Data Structures and Applications
850:
737:University of Regina - CS210 Lab: Hash Table
684:
628:
968:
707:. Archived from the original on 2007-08-18.
2392:
2378:
2162:
2148:
1607:
1593:
1237:
1223:
1164:Fundamentals of Data Structures in Pascal
551:Introduction to Algorithms, Third Edition
2564:Comparison of regular-expression engines
1149:, second edition, Addison-Wesley, 1991,
428:Modern languages also generally support
220:
38:
969:Van Canneyt, Michaël (September 2017).
883:
94:Data structures serve as the basis for
2734:
1209:Data Structures and Algorithm Analysis
917:Walter E. Brown (September 29, 1999).
229:hierarchy of the programming language
2525:Zhu–Takaoka string matching algorithm
2373:
2143:
1588:
1218:
941:
923:Fermi National Accelerator Laboratory
574:
442:Object-oriented programming languages
2490:Boyer–Moore string-search algorithm
1244:
575:Black, Paul E. (15 December 2004).
358:
13:
1105:
823:Handbook of Computational Geometry
733:"1.5 Applications of a Hash Table"
387:(a direct descendant of BCPL) and
113:indexes for data retrieval, while
14:
2753:
2579:Nondeterministic finite automaton
2520:Two-way string-matching algorithm
1181:
300:to distinguish them from objects.
154:
139:. Some formal design methods and
2359:Data Format Description Language
632:Encyclopedia of Computer Science
463:Many known data structures have
399:) and multi-dimensional arrays.
377:high-level programming languages
1040:The Art of Computer Programming
1010:
977:
962:
910:
877:
844:
810:
667:from the original on 2023-02-10
554:(3rd ed.). The MIT Press.
2495:Boyer–Moore–Horspool algorithm
2485:Apostolico–Giancarlo algorithm
2169:
1614:
1124:Data Structures and Algorithms
1088:Algorithms and Data Structures
971:"Free Pascal: Reference Guide"
919:"C++ Language Note: POD Types"
776:
754:
725:
678:
649:
622:
597:
568:
541:
1:
1673:Arbitrary-precision or bignum
534:
432:, the separation between the
2500:Knuth–Morris–Pratt algorithm
2427:Damerau–Levenshtein distance
2334:Core architecture data model
986:"Concurrent Data Structures"
43:A data structure known as a
7:
2691:Compressed pattern matching
2417:Approximate string matching
2399:
1561:Directed acyclic word graph
1327:Double-ended priority queue
884:Seymour, Lipschutz (2014).
470:
294:object-oriented programming
241:. Well known examples are:
210:
10:
2758:
2696:Longest common subsequence
2607:Needleman–Wunsch algorithm
2477:String-searching algorithm
1022:Cambridge University Press
984:Mark Moir and Nir Shavit.
951:. Free Software Foundation
416:Java Collections Framework
214:
18:
2706:Sequential pattern mining
2673:
2620:
2587:
2554:
2546:Commentz-Walter algorithm
2534:Multiple string searching
2533:
2475:
2467:Wagner–Fischer algorithm
2407:
2329:Business process modeling
2316:
2308:Unified Modeling Language
2280:
2247:Entity–relationship model
2229:
2203:
2177:
2047:
2014:Strongly typed identifier
1956:
1842:
1812:
1777:
1665:
1622:
1569:
1541:
1435:
1397:
1354:
1273:
1252:
717:: CS1 maint: unfit URL (
691:Beginning Database Design
508:Persistent data structure
483:Concurrent data structure
412:Standard Template Library
298:plain old data structures
2716:String rewriting systems
2701:Longest common substring
2612:Smith–Waterman algorithm
2437:Gestalt pattern matching
1293:Retrieval Data Structure
1126:, Addison-Wesley, 1983,
1018:Advanced Data Structures
609:Encyclopaedia Britannica
513:Plain old data structure
89:
27:Not to be confused with
2650:Generalized suffix tree
2574:Thompson's construction
2089:Parametric polymorphism
1574:List of data structures
1551:Binary decision diagram
523:Succinct data structure
503:List of data structures
296:, records are known as
217:List of data structures
2602:Hirschberg's algorithm
2242:Data structure diagram
1556:Directed acyclic graph
1197:Data structures course
1168:Computer Science Press
855:. New Delhi: S Chand.
804:10.5120/ijca2021921427
768:. 2014. Archived from
234:
193:linked data structures
48:
2457:Levenshtein automaton
2447:Jaro–Winkler distance
1047:, 3rd edition, 1997,
851:Dubey, R. C. (2014).
685:Gavin Powell (2006).
657:"Abstract Data Types"
528:Tree (data structure)
498:Linked data structure
224:
189:arithmetic operations
141:programming languages
42:
20:For another use, see
2505:Rabin–Karp algorithm
2462:Levenshtein distance
2339:Enterprise modelling
2303:Object–role modeling
1422:Unrolled linked list
292:. In the context of
239:primitive data types
107:relational databases
2660:Ternary search tree
2094:Primitive data type
1999:Recursive data type
1852:Algebraic data type
1728:Quadruple precision
1470:Self-balancing tree
430:modular programming
369:low-level languages
96:abstract data types
80:algebraic structure
2589:Sequence alignment
2556:Regular expression
2057:Abstract data type
1738:Extended precision
1697:Reduced precision
1450:Binary search tree
1315:Double-ended queue
1162:and Sartaj Sahni,
949:"The GNU C Manual"
478:Abstract data type
460:for this purpose.
391:languages support
365:assembly languages
257:(also just called
235:
205:abstract data type
49:
2729:
2728:
2721:String operations
2367:
2366:
2293:Information model
2288:Data-flow diagram
2137:
2136:
1869:Associative array
1733:Octuple precision
1582:
1581:
1384:Hashed array tree
1283:Associative array
1057:Dinesh Mehta and
862:978-81-219-4290-4
832:978-0-444-82537-7
704:978-0-7645-7490-0
438:opaque data types
175:, representing a
2749:
2686:Pattern matching
2640:Suffix automaton
2442:Hamming distance
2394:
2387:
2380:
2371:
2370:
2349:Process modeling
2164:
2157:
2150:
2141:
2140:
2109:Type constructor
1994:Opaque data type
1926:Record or Struct
1723:Double precision
1718:Single precision
1609:
1602:
1595:
1586:
1585:
1407:Association list
1239:
1232:
1225:
1216:
1215:
1067:Chapman and Hall
1004:
1003:
1001:
995:. Archived from
990:
981:
975:
974:
966:
960:
959:
957:
956:
945:
939:
938:
936:
934:
925:. Archived from
914:
908:
907:
881:
875:
874:
848:
842:
841:
840:
839:
814:
808:
807:
789:
780:
774:
773:
758:
752:
751:
749:
748:
739:. Archived from
729:
723:
722:
716:
708:
682:
676:
675:
673:
672:
653:
647:
646:
626:
620:
619:
617:
616:
605:"Data structure"
601:
595:
594:
592:
591:
577:"data structure"
572:
566:
565:
545:
456:, typically use
359:Language support
149:secondary memory
53:computer science
36:
25:
2757:
2756:
2752:
2751:
2750:
2748:
2747:
2746:
2742:Data structures
2732:
2731:
2730:
2725:
2669:
2616:
2583:
2569:Regular grammar
2550:
2529:
2510:Raita algorithm
2471:
2422:Bitap algorithm
2403:
2398:
2368:
2363:
2324:Database design
2312:
2276:
2225:
2199:
2173:
2168:
2138:
2133:
2114:Type conversion
2049:
2043:
1979:Enumerated type
1952:
1838:
1832:null-terminated
1808:
1773:
1661:
1618:
1613:
1583:
1578:
1565:
1537:
1431:
1427:XOR linked list
1393:
1369:Circular buffer
1350:
1269:
1248:
1246:Data structures
1243:
1184:
1108:
1106:Further reading
1013:
1008:
1007:
999:
988:
982:
978:
967:
963:
954:
952:
947:
946:
942:
932:
930:
915:
911:
896:
886:Data structures
882:
878:
863:
849:
845:
837:
835:
833:
815:
811:
787:
781:
777:
760:
759:
755:
746:
744:
731:
730:
726:
710:
709:
705:
695:Wrox Publishing
683:
679:
670:
668:
655:
654:
650:
643:
627:
623:
614:
612:
611:. 17 April 2017
603:
602:
598:
589:
587:
573:
569:
562:
546:
542:
537:
532:
473:
361:
219:
213:
157:
118:implementations
92:
37:
26:
19:
17:
12:
11:
5:
2755:
2745:
2744:
2727:
2726:
2724:
2723:
2718:
2713:
2708:
2703:
2698:
2693:
2688:
2683:
2677:
2675:
2671:
2670:
2668:
2667:
2662:
2657:
2652:
2647:
2642:
2637:
2632:
2626:
2624:
2622:Data structure
2618:
2617:
2615:
2614:
2609:
2604:
2599:
2593:
2591:
2585:
2584:
2582:
2581:
2576:
2571:
2566:
2560:
2558:
2552:
2551:
2549:
2548:
2543:
2537:
2535:
2531:
2530:
2528:
2527:
2522:
2517:
2515:Trigram search
2512:
2507:
2502:
2497:
2492:
2487:
2481:
2479:
2473:
2472:
2470:
2469:
2464:
2459:
2454:
2449:
2444:
2439:
2434:
2429:
2424:
2419:
2413:
2411:
2405:
2404:
2397:
2396:
2389:
2382:
2374:
2365:
2364:
2362:
2361:
2356:
2351:
2346:
2344:Function model
2341:
2336:
2331:
2326:
2320:
2318:
2314:
2313:
2311:
2310:
2305:
2300:
2295:
2290:
2284:
2282:
2281:Related models
2278:
2277:
2275:
2274:
2269:
2264:
2259:
2254:
2244:
2239:
2233:
2231:
2227:
2226:
2224:
2223:
2218:
2213:
2207:
2205:
2201:
2200:
2198:
2197:
2192:
2187:
2181:
2179:
2175:
2174:
2167:
2166:
2159:
2152:
2144:
2135:
2134:
2132:
2131:
2126:
2121:
2116:
2111:
2106:
2101:
2096:
2091:
2086:
2085:
2084:
2074:
2069:
2067:Data structure
2064:
2059:
2053:
2051:
2045:
2044:
2042:
2041:
2036:
2031:
2026:
2021:
2016:
2011:
2006:
2001:
1996:
1991:
1986:
1981:
1976:
1971:
1966:
1960:
1958:
1954:
1953:
1951:
1950:
1949:
1948:
1938:
1933:
1928:
1923:
1918:
1913:
1912:
1911:
1901:
1896:
1891:
1886:
1881:
1876:
1871:
1866:
1861:
1860:
1859:
1848:
1846:
1840:
1839:
1837:
1836:
1835:
1834:
1824:
1818:
1816:
1810:
1809:
1807:
1806:
1801:
1800:
1799:
1794:
1783:
1781:
1775:
1774:
1772:
1771:
1766:
1761:
1760:
1759:
1749:
1748:
1747:
1746:
1745:
1735:
1730:
1725:
1720:
1715:
1714:
1713:
1708:
1706:Half precision
1703:
1693:Floating point
1690:
1685:
1680:
1675:
1669:
1667:
1663:
1662:
1660:
1659:
1654:
1649:
1644:
1639:
1634:
1628:
1626:
1620:
1619:
1612:
1611:
1604:
1597:
1589:
1580:
1579:
1577:
1576:
1570:
1567:
1566:
1564:
1563:
1558:
1553:
1547:
1545:
1539:
1538:
1536:
1535:
1534:
1533:
1523:
1522:
1521:
1519:Hilbert R-tree
1516:
1511:
1501:
1500:
1499:
1497:Fibonacci heap
1494:
1489:
1479:
1478:
1477:
1472:
1467:
1465:Red–black tree
1462:
1457:
1447:
1441:
1439:
1433:
1432:
1430:
1429:
1424:
1419:
1414:
1409:
1403:
1401:
1395:
1394:
1392:
1391:
1386:
1381:
1376:
1371:
1366:
1360:
1358:
1352:
1351:
1349:
1348:
1347:
1346:
1341:
1331:
1330:
1329:
1322:Priority queue
1319:
1318:
1317:
1307:
1302:
1297:
1296:
1295:
1290:
1279:
1277:
1271:
1270:
1268:
1267:
1262:
1256:
1254:
1250:
1249:
1242:
1241:
1234:
1227:
1219:
1213:
1212:
1204:
1199:
1194:
1183:
1182:External links
1180:
1179:
1178:
1160:Ellis Horowitz
1157:
1141:R. Baeza-Yates
1134:
1120:Jeffrey Ullman
1107:
1104:
1103:
1102:
1100:978-0130220059
1081:
1055:
1053:978-0201896831
1045:Addison-Wesley
1032:
1030:978-0521880374
1012:
1009:
1006:
1005:
1002:on 2011-04-01.
976:
973:. Free Pascal.
961:
940:
909:
894:
876:
861:
843:
831:
809:
775:
772:on 2018-04-10.
753:
724:
703:
677:
648:
642:978-0470864128
641:
621:
596:
567:
561:978-0262033848
560:
539:
538:
536:
533:
531:
530:
525:
520:
515:
510:
505:
500:
495:
490:
485:
480:
474:
472:
469:
423:.NET Framework
360:
357:
349:
348:
335:(particularly
325:
314:
307:
301:
282:aggregate data
266:
251:
215:Main article:
212:
209:
177:memory address
156:
155:Implementation
153:
91:
88:
57:data structure
15:
9:
6:
4:
3:
2:
2754:
2743:
2740:
2739:
2737:
2722:
2719:
2717:
2714:
2712:
2709:
2707:
2704:
2702:
2699:
2697:
2694:
2692:
2689:
2687:
2684:
2682:
2679:
2678:
2676:
2672:
2666:
2663:
2661:
2658:
2656:
2653:
2651:
2648:
2646:
2643:
2641:
2638:
2636:
2633:
2631:
2628:
2627:
2625:
2623:
2619:
2613:
2610:
2608:
2605:
2603:
2600:
2598:
2595:
2594:
2592:
2590:
2586:
2580:
2577:
2575:
2572:
2570:
2567:
2565:
2562:
2561:
2559:
2557:
2553:
2547:
2544:
2542:
2539:
2538:
2536:
2532:
2526:
2523:
2521:
2518:
2516:
2513:
2511:
2508:
2506:
2503:
2501:
2498:
2496:
2493:
2491:
2488:
2486:
2483:
2482:
2480:
2478:
2474:
2468:
2465:
2463:
2460:
2458:
2455:
2453:
2450:
2448:
2445:
2443:
2440:
2438:
2435:
2433:
2432:Edit distance
2430:
2428:
2425:
2423:
2420:
2418:
2415:
2414:
2412:
2410:
2409:String metric
2406:
2402:
2395:
2390:
2388:
2383:
2381:
2376:
2375:
2372:
2360:
2357:
2355:
2352:
2350:
2347:
2345:
2342:
2340:
2337:
2335:
2332:
2330:
2327:
2325:
2322:
2321:
2319:
2315:
2309:
2306:
2304:
2301:
2299:
2296:
2294:
2291:
2289:
2286:
2285:
2283:
2279:
2273:
2270:
2268:
2265:
2263:
2260:
2258:
2255:
2252:
2248:
2245:
2243:
2240:
2238:
2235:
2234:
2232:
2228:
2222:
2219:
2217:
2214:
2212:
2209:
2208:
2206:
2202:
2196:
2193:
2191:
2188:
2186:
2183:
2182:
2180:
2176:
2172:
2165:
2160:
2158:
2153:
2151:
2146:
2145:
2142:
2130:
2127:
2125:
2122:
2120:
2117:
2115:
2112:
2110:
2107:
2105:
2102:
2100:
2097:
2095:
2092:
2090:
2087:
2083:
2080:
2079:
2078:
2075:
2073:
2070:
2068:
2065:
2063:
2060:
2058:
2055:
2054:
2052:
2046:
2040:
2037:
2035:
2032:
2030:
2027:
2025:
2022:
2020:
2017:
2015:
2012:
2010:
2007:
2005:
2002:
2000:
1997:
1995:
1992:
1990:
1989:Function type
1987:
1985:
1982:
1980:
1977:
1975:
1972:
1970:
1967:
1965:
1962:
1961:
1959:
1955:
1947:
1944:
1943:
1942:
1939:
1937:
1934:
1932:
1929:
1927:
1924:
1922:
1919:
1917:
1914:
1910:
1907:
1906:
1905:
1902:
1900:
1897:
1895:
1892:
1890:
1887:
1885:
1882:
1880:
1877:
1875:
1872:
1870:
1867:
1865:
1862:
1858:
1855:
1854:
1853:
1850:
1849:
1847:
1845:
1841:
1833:
1830:
1829:
1828:
1825:
1823:
1820:
1819:
1817:
1815:
1811:
1805:
1802:
1798:
1795:
1793:
1790:
1789:
1788:
1785:
1784:
1782:
1780:
1776:
1770:
1767:
1765:
1762:
1758:
1755:
1754:
1753:
1750:
1744:
1741:
1740:
1739:
1736:
1734:
1731:
1729:
1726:
1724:
1721:
1719:
1716:
1712:
1709:
1707:
1704:
1702:
1699:
1698:
1696:
1695:
1694:
1691:
1689:
1686:
1684:
1681:
1679:
1676:
1674:
1671:
1670:
1668:
1664:
1658:
1655:
1653:
1650:
1648:
1645:
1643:
1640:
1638:
1635:
1633:
1630:
1629:
1627:
1625:
1624:Uninterpreted
1621:
1617:
1610:
1605:
1603:
1598:
1596:
1591:
1590:
1587:
1575:
1572:
1571:
1568:
1562:
1559:
1557:
1554:
1552:
1549:
1548:
1546:
1544:
1540:
1532:
1529:
1528:
1527:
1524:
1520:
1517:
1515:
1512:
1510:
1507:
1506:
1505:
1502:
1498:
1495:
1493:
1492:Binomial heap
1490:
1488:
1485:
1484:
1483:
1480:
1476:
1473:
1471:
1468:
1466:
1463:
1461:
1458:
1456:
1453:
1452:
1451:
1448:
1446:
1443:
1442:
1440:
1438:
1434:
1428:
1425:
1423:
1420:
1418:
1415:
1413:
1410:
1408:
1405:
1404:
1402:
1400:
1396:
1390:
1389:Sparse matrix
1387:
1385:
1382:
1380:
1377:
1375:
1374:Dynamic array
1372:
1370:
1367:
1365:
1362:
1361:
1359:
1357:
1353:
1345:
1342:
1340:
1337:
1336:
1335:
1332:
1328:
1325:
1324:
1323:
1320:
1316:
1313:
1312:
1311:
1308:
1306:
1303:
1301:
1298:
1294:
1291:
1289:
1286:
1285:
1284:
1281:
1280:
1278:
1276:
1272:
1266:
1263:
1261:
1258:
1257:
1255:
1251:
1247:
1240:
1235:
1233:
1228:
1226:
1221:
1220:
1217:
1211:
1210:
1207:Schaffer, C.
1205:
1203:
1200:
1198:
1195:
1193:
1189:
1186:
1185:
1177:
1176:0-914894-94-3
1173:
1169:
1165:
1161:
1158:
1156:
1155:0-201-41607-7
1152:
1148:
1147:
1142:
1138:
1135:
1133:
1132:0-201-00023-7
1129:
1125:
1121:
1117:
1116:John Hopcroft
1113:
1110:
1109:
1101:
1097:
1093:
1092:Prentice Hall
1089:
1085:
1084:Niklaus Wirth
1082:
1080:
1076:
1072:
1068:
1064:
1060:
1056:
1054:
1050:
1046:
1042:
1041:
1036:
1033:
1031:
1027:
1023:
1019:
1016:Peter Brass,
1015:
1014:
998:
994:
987:
980:
972:
965:
950:
944:
929:on 2016-12-03
928:
924:
920:
913:
905:
901:
897:
895:9781259029967
891:
887:
880:
872:
868:
864:
858:
854:
847:
834:
828:
824:
820:
813:
805:
801:
798:(11): 47–49.
797:
793:
786:
779:
771:
767:
763:
757:
743:on 2021-04-27
742:
738:
734:
728:
720:
714:
706:
700:
696:
692:
688:
681:
666:
662:
658:
652:
644:
638:
634:
633:
625:
610:
606:
600:
586:
582:
578:
571:
563:
557:
553:
552:
544:
540:
529:
526:
524:
521:
519:
516:
514:
511:
509:
506:
504:
501:
499:
496:
494:
491:
489:
486:
484:
481:
479:
476:
475:
468:
466:
461:
459:
455:
451:
447:
443:
439:
435:
431:
426:
424:
421:
417:
413:
410:
405:
400:
398:
394:
390:
386:
382:
378:
374:
370:
366:
356:
354:
346:
342:
338:
334:
329:
326:
322:
318:
315:
311:
308:
305:
302:
299:
295:
291:
287:
283:
279:
275:
272:(also called
271:
267:
264:
263:random access
260:
256:
252:
248:
244:
243:
242:
240:
232:
228:
225:The standard
223:
218:
208:
206:
202:
197:
194:
190:
186:
182:
178:
174:
171:
167:
163:
152:
150:
146:
142:
138:
134:
129:
127:
123:
119:
116:
112:
109:commonly use
108:
103:
101:
97:
87:
85:
81:
77:
73:
69:
66:
62:
58:
54:
46:
41:
34:
30:
23:
2635:Suffix array
2621:
2541:Aho–Corasick
2452:Lee distance
2298:Object model
2194:
2185:Architecture
2066:
1894:Intersection
1344:Disjoint-set
1245:
1208:
1188:Descriptions
1163:
1144:
1137:G. H. Gonnet
1123:
1087:
1062:
1059:Sartaj Sahni
1038:
1035:Donald Knuth
1017:
1011:Bibliography
997:the original
993:cs.tau.ac.il
992:
979:
964:
953:. Retrieved
943:
931:. Retrieved
927:the original
912:
885:
879:
852:
846:
836:, retrieved
822:
812:
795:
791:
778:
770:the original
765:
756:
745:. Retrieved
741:the original
736:
727:
690:
680:
669:. Retrieved
660:
651:
631:
624:
613:. Retrieved
608:
599:
588:. Retrieved
580:
570:
550:
543:
493:Dynamization
462:
427:
401:
362:
350:
333:Binary trees
289:
285:
277:
273:
258:
236:
198:
191:, while the
158:
130:
120:usually use
104:
93:
56:
50:
2645:Suffix tree
2211:Conceptual
2124:Type theory
2119:Type system
1969:Bottom type
1916:Option type
1857:generalized
1743:Long double
1688:Fixed point
1487:Binary heap
1412:Linked list
304:Hash tables
255:linked list
145:main memory
126:identifiers
124:to look up
122:hash tables
2354:XML schema
2257:Geographic
2171:Data model
2029:Empty type
2024:Type class
1974:Collection
1931:Refinement
1909:metaobject
1757:signedness
1616:Data types
1475:Splay tree
1379:Hash table
1260:Collection
1112:Alfred Aho
1079:1584884355
1043:, vol. 1.
955:2014-10-15
933:6 December
838:2023-11-12
747:2018-06-14
671:2023-02-15
615:2018-11-06
590:2018-11-06
535:References
488:Data model
465:concurrent
444:, such as
418:, and the
371:, such as
201:procedures
137:algorithms
76:operations
45:hash table
33:Data model
22:Blockchain
2195:Structure
2104:Subtyping
2099:Interface
2082:metaclass
2034:Unit type
2004:Semaphore
1984:Exception
1889:Inductive
1879:Dependent
1844:Composite
1822:Character
1804:Reference
1701:Minifloat
1657:Bit array
1531:Hash tree
1417:Skip list
1364:Bit array
1265:Container
1190:from the
1071:CRC Press
904:927793728
871:883695533
713:cite book
454:Smalltalk
434:interface
420:Microsoft
367:and some
341:AVL trees
133:databases
100:data type
72:functions
65:efficient
29:Data type
2736:Category
2317:See also
2267:Semantic
2251:enhanced
2237:Database
2221:Physical
2190:Modeling
2129:Variable
2019:Top type
1884:Equality
1792:physical
1769:Rational
1764:Interval
1711:bfloat16
1460:AVL tree
1339:Multiset
1288:Multimap
1275:Abstract
1170:, 1984,
1094:, 1985,
1073:, 2004,
1024:, 2008,
665:Archived
471:See also
280:) is an
231:Python 3
211:Examples
162:computer
115:compiler
2711:Sorting
2681:Parsing
2401:Strings
2262:Generic
2216:Logical
2204:Schemas
2072:Generic
2048:Related
1964:Boolean
1921:Product
1797:virtual
1787:Address
1779:Pointer
1752:Integer
1683:Decimal
1678:Complex
1666:Numeric
1514:R+ tree
1509:R* tree
1455:AA tree
458:classes
404:library
393:structs
345:B-trees
290:members
166:pointer
2272:Common
2062:Boxing
2050:topics
2009:Stream
1946:tagged
1904:Object
1827:String
1543:Graphs
1504:R-tree
1445:B-tree
1399:Linked
1356:Arrays
1174:
1153:
1130:
1118:, and
1098:
1077:
1051:
1028:
902:
892:
869:
859:
829:
701:
639:
558:
452:, and
414:, the
397:arrays
389:Pascal
343:, and
321:queues
317:Stacks
310:Graphs
286:fields
278:struct
270:record
185:record
173:string
111:B-tree
82:about
68:access
2674:Other
2630:DAFSA
2597:BLAST
2230:Types
1957:Other
1941:Union
1874:Class
1864:Array
1647:Tryte
1437:Trees
1310:Queue
1305:Stack
1253:Types
1000:(PDF)
989:(PDF)
788:(PDF)
518:Queap
363:Most
337:heaps
328:Trees
274:tuple
247:array
181:array
90:Usage
59:is a
2665:Trie
2655:Rope
2178:Main
2077:Kind
2039:Void
1899:List
1814:Text
1652:Word
1642:Trit
1637:Byte
1526:Trie
1482:Heap
1300:List
1172:ISBN
1151:ISBN
1139:and
1128:ISBN
1096:ISBN
1075:ISBN
1049:ISBN
1026:ISBN
935:2016
900:OCLC
890:ISBN
867:OCLC
857:ISBN
827:ISBN
719:link
699:ISBN
637:ISBN
556:ISBN
450:Java
381:MASM
373:BCPL
353:trie
319:and
259:list
227:type
183:and
147:and
84:data
61:data
55:, a
1936:Set
1632:Bit
1334:Set
800:doi
796:183
446:C++
409:C++
339:),
288:or
276:or
245:An
170:bit
168:—a
74:or
51:In
31:or
2738::
1166:,
1143:,
1122:,
1114:,
1090:,
1086:,
1065:,
1061:,
1037:,
1020:,
991:.
921:.
898:.
865:.
821:,
794:.
790:.
764:.
735:.
715:}}
711:{{
697:.
693:.
689:.
663:.
659:.
607:.
583:.
448:,
425:.
351:A
268:A
253:A
151:.
128:.
102:.
86:.
2393:e
2386:t
2379:v
2253:)
2249:(
2163:e
2156:t
2149:v
1608:e
1601:t
1594:v
1238:e
1231:t
1224:v
1069:/
958:.
937:.
906:.
873:.
806:.
802::
750:.
721:)
674:.
645:.
618:.
593:.
564:.
385:C
233:.
47:.
35:.
24:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.