In computer science Computer science or computing science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe, and transform information. Computer science, a data structure is a particular way of storing and organizing data The term data refers to groups of information that represent the qualitative or quantitative attributes of a variable or set of variables. Data are typically the results of measurements and can be the basis of graphs, images, or observations of a set of variables. Data are often viewed as the lowest level of abstraction from which information and in a computer A computer is a programmable machine that receives input, stores and manipulates data//information, and provides output in a useful format so that it can be used efficiently In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. Algorithmic efficiency can be thought of as analogous to engineering productivity for a repeating or continuous process, where the goal is to reduce resource consumption, including time to completion, to.[1][2]
Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks. For example, B-trees In B-trees, internal nodes can have a variable number of child nodes within some pre-defined range. When data is inserted or removed from a node, its number of child nodes changes. In order to maintain the pre-defined range, internal nodes may be joined or split. Because a range of child nodes is permitted, B-trees do not need re-balancing as are particularly well-suited for implementation of databases, while compiler A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program implementations usually use hash tables In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys, to their associated values (e.g., their telephone number). The hash function is used to transform the key into the index (the hash) of an array element (the slot or bucket) where the corresponding value is to be to look up identifiers.
Data structures are used in almost every program or software system. Specific data structures are essential ingredients of many efficient algorithms, and make possible the management of huge amounts of data, such as large databases A database consists of an organized collection of data for one or more uses, typically in digital form. One way of classifying databases involves the type of their contents, for example: bibliographic, document-text, statistical. Digital databases are managed using database management systems, which store database contents, allowing data creation and internet indexing services Web indexing includes back-of-book-style indexes to individual websites or an intranet, and the creation of keyword metadata to provide a more useful vocabulary for Internet or onsite search engines. With the increase in the number of periodicals that have articles online, web indexing is also becoming important for periodical websites. Some formal design methods and programming languages emphasize data structures, rather than algorithms, as the key organizing factor in software design.
Contents |
Basic principles
Data structures are generally based on the ability of a computer to fetch and store data at any place in its memory, specified by an address In computing, a physical address, also real address, or binary address, is the memory address that is electronically presented on the computer address bus circuitry in order to enable the data bus to access a particular storage cell of main memory — a bit string that can be itself stored in memory and manipulated by the program. Thus the record In computer science, a record is one of the simplest data structures, consisting of two or more values or variables stored in consecutive memory positions; so that each component (called a field or member of the record) can be accessed by applying different offsets to the starting address and array In computer science, an array data structure or simply array is a data structure consisting of a collection of elements , each identified by one or more integer indices, stored so that the address of each element can be computed from its index tuple by a simple mathematical formula. For example, an array of 10 integer variables, with indices 0 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. Many data structures use both principles, sometimes combined in non-trivial ways (as in XOR linking).
Abstract data structures
The implementation of a data structure usually requires writing a set of procedures In computer science, a subroutine is a portion of code within a larger program that performs a specific task and is relatively independent of the remaining code 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 In computing, an abstract data type or abstract data structure is a mathematical model for a certain class of data structures that have similar behavior; or for certain data types of one or more programming languages that have similar semantics. An abstract data type is defined indirectly, only by the operations that may be performed on it and by, 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).
Language support
Assembly languages and some low-level languages, such as BCPL, generally lack support for data structures. Many high-level programming languages, on the other hand, have special syntax or other built-in support for certain data structures, such as vectors (one-dimensional arrays In computer science, an array type is a data type that is meant to describe a collection of elements , each selected by one or more indices that can be computed at run time by the program. Such a collection is usually called an array variable, array value, or simply array. By analogy with the mathematical concepts of vector and matrix, an array) in the C programming language C is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system, multi-dimensional arrays in Pascal Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring, linked lists in Common Lisp, and hash tables In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys, to their associated values (e.g., their telephone number). The hash function is used to transform the key into the index (the hash) of an array element (the slot or bucket) where the corresponding value is to be in Perl and in Python Python is a general-purpose high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax," and its standard library is large and comprehensive. Its use of indentation for block delimiters is unusual among popular programming languages. Many languages also provide basic facilities such as references In computer science, a reference is a value that enables a program to indirectly access a particular data item, such as a variable or a record, in the computer's memory or in some other storage device. The reference is said to refer to the data item, and accessing that data is called dereferencing the reference and the definition record In computer science, a record is one of the simplest data structures, consisting of two or more values or variables stored in consecutive memory positions; so that each component (called a field or member of the record) can be accessed by applying different offsets to the starting address data types, that programmers can use to build arbitrarily complex structures.
Most programming languages feature some sort of library mechanism that allows data structure implementations to be reused by different programs. Modern programming languages usually come with standard libraries that implement the most common data structures. Examples are the C++ , the Java Collections Framework, and Microsoft Microsoft Corporation is a public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions. Established on April 4, 1975 to develop and sell BASIC interpreters for the Altair 8's .NET Framework The Microsoft .NET Framework is a software framework that can be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework supports multiple.
Modern languages also generally support modular programming Modular programming is a software design technique that increases the extent to which software is composed from separate parts, called modules. Conceptually, modules represent a separation of concerns, and improve maintainability by enforcing logical boundaries between components. Modules are typically incorporated into the program through, 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 Object-oriented programming is a programming paradigm that uses "objects" – data structures consisting of datafields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction, encapsulation, modularity, polymorphism, and, such as C++, .NET Framework The Microsoft .NET Framework is a software framework that can be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework supports multiple and Java Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file), use classes In object-oriented programming, a class is a construct that is used as a blueprint to create objects of that class. This blueprint describes the state and behavior that the objects of the class all share. An object of a given class is called an instance of the class. The class that contains (and was used to create) that instance can be considered for this purpose.
With the advent of multi-core In computing, a processor is the unit that reads and executes program instructions, which are fixed-length or variable-length chunks of data. The data in the instruction tells the processor what to do. The instructions are very basic things like reading data from memory or sending data to the user display, but they are processed so rapidly that we processors, many known data structures have concurrent versions that allow multiple computing threads to access the data structure simultaneously.
See also
| Book:Data structures | |
| Books are collections of articles that can be downloaded or ordered in print. | |
- Concurrent data structure
- Data model A data model in software engineering is an abstract model that describes how data are represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest. According to Hoberman , "A data model is a wayfinding tool for both business and IT professionals, which uses a set of symbols
- Dynamization
- Linked data structure
- List of data structures
- Persistent data structure
References
- ^ Paul E. Black (ed.), entry for data structure in Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology The National Institute of Standards and Technology , known between 1901 and 1988 as the National Bureau of Standards (NBS), is a measurement standards laboratory which is a non-regulatory agency of the United States Department of Commerce. The institute's official mission is:. 15 December 2004. Online version Accessed 2009-05-21.
- ^ Entry data structure in the Encyclopædia Britannica The Encyclopædia Britannica is a general English-language encyclopaedia published by Encyclopædia Britannica, Inc., a privately held company. Articles are aimed at educated adults, and written by about 100 full-time editors and more than 4,000 expert contributors. It is regarded as the most scholarly of encyclopaedias (2009) Online entry accessed on 2009-05-21.
- Donald Knuth Donald Ervin Knuth (born January 10, 1938) is a renowned computer scientist and Professor Emeritus of the Art of Computer Programming at Stanford University, The Art of Computer Programming, vol. 1. Addison-Wesley.
- Dinesh Mehta and Sartaj Sahni Handbook of Data Structures and Applications, Chapman and Hall/CRC Press The CRC Press, LLC is a publishing group which specializes in producing technical books in a wide range of subjects. While many of their books relate to engineering, science and mathematics, their scope also includes books on business and information technology. It is also well known for its wide range of books on forensics. CRC Press is now a, 2007.
- Niklaus Wirth Niklaus Emil Wirth is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. In 1984 he won the Turing Award for developing a sequence of innovative computer languages, Algorithms and Data Structures
External links
| Wikibooks has a book on the topic of Data Structures |
| Wikimedia Commons has media related to: Data structures |
- Descriptions from the Dictionary of Algorithms and Data Structures
- CSE.unr.edu
- Data structures course with animations
- Data structure tutorials with animations
- An Examination of Data Structures
- [http://www.collectionspy.com C; A profiler and viewer for Java's standard data structure classes (see Java Collections Framework)
Categories: Data structures
Personal tools
- New features
- Log in / create account
Namespaces
- Article
- Discussion
Variants
Views
- Read
- Edit
- View history
Actions
Navigation
- Main page
- Contents
- Featured content
- Current events
- Random article
Interaction
- About Wikipedia
- Community portal
- Recent changes
- Contact Wikipedia
- Donate to Wikipedia
- Help
Toolbox
- What links here
- Related changes
- Upload file
- Special pages
- Permanent link
- Cite this page
Print/export
- Create a book
- Download as PDF
- Printable version
Languages
- العربية
- Asturianu
- বাংলা
- Bosanski
- Català
- Dansk
- Deutsch
- Español
- فارسی
- Français
- 한국어
- Bahasa Indonesia
- Íslenska
- Italiano
- עברית
- Latviešu
- Magyar
- മലയാളം
- Bahasa Melayu
- Nederlands
- 日本語
- Norsk (bokmål)
- Polski
- Português
- Română
- Русский
- Simple English
- Slovenčina
- Slovenščina
- Српски / Srpski
- Suomi
- Svenska
- ไทย
- Türkçe
- Українська
- Tiếng Việt
- 中文