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.

References

  1. ^ 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.
  2. ^ 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.

External links

Wikibooks has a book on the topic of Data Structures
Wikimedia Commons has media related to: Data structures
Data structures
Types Collection In computer science, a collection is a grouping of some variable number of data items that have some shared significance to the problem being solved and need to be operated upon together in some controlled fashion. Generally, the data items will be of the same type or, in languages supporting inheritance, derived from some common ancestor type. A · Container In computer science, a container is a class, a data structure, or an abstract data type whose instances are collections of other objects. In other words; They are used to store objects in an organized way following specific access rules
Arrays 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 Associative array An associative array is an abstract data type composed of a collection of unique keys and a collection of values, where each key is associated with one value (or set of values). The operation of finding the value associated with a key is called a lookup or indexing, and this is the most important operation supported by an associative array. The · Multimap · Set In computer science, a set is an abstract data structure that can store certain values, without any particular order, and no repeated values. It is a computer implementation of the mathematical concept of a finite set · Multiset In computer science, a set is an abstract data structure that can store certain values, without any particular order, and no repeated values. It is a computer implementation of the mathematical concept of a finite set · Hash table 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
Lists In computer science, a list or sequence is an abstract data structure that implements an ordered collection of values, where the same value may occur more than once. An instance of a list is a computer representation of the mathematical concept of a finite sequence, that is, a tuple. Each instance of a value in the list is usually called an item, Double-ended queue In computer science, a double-ended queue is an abstract data structure that implements a queue for which elements can only be added to or removed from the front (head) or back (tail). It is also often called a head-tail linked list · Linked list In computer science, a linked list is a data structure that consists of a sequence of data records such that in each record there is a field that contains a reference to the next record in the sequence · Queue A queue is a particular kind of collection in which the entities in the collection are kept in order and the principal (or only) operations on the collection are the addition of entities to the rear terminal position and removal of entities from the front terminal position. This makes the queue a First-In-First-Out (FIFO) data structure. In a FIFO · Stack In computer science, a stack is a last in, first out abstract data type and data structure. A stack can have any abstract data type as an element, but is characterized by only two fundamental operations: push and pop. The push operation adds to the top of the list, hiding any items already on the stack, or initializing the stack if it is empty · Circular Queue/Buffer A circular buffer, cyclic buffer or ring buffer is a data structure that uses a single, fixed-size buffer as if it were connected end-to-end. This structure lends itself easily to buffering data streams · Skip list
Trees In computer science, a tree is a widely-used data structure that emulates a hierarchical tree structure with a set of linked nodes B-tree 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 · Binary search tree · Heap
Graphs Directed graph · Directed acyclic graph · Binary decision diagram
List of data structures

Categories: Data structures

Personal tools
Namespaces
">
Variants
Views
">
Actions
Search">
Navigation
Interaction
Toolbox
Print/export
Languages

 

The above information uses material from Wikipedia and is licensed under the GNU Free Documentation License.
Some facts may not have been fully verified for accuracy. [Disclaimers]
This page was last archived by our server on Fri Sep 3 06:35:24 2010. [ refresh local cache ]
Displaying this page or its contents does not use any Wikimedia Foundation's resources.
The owners of this site proudly support the Wikimedia Foundation.


LLVM Project Blog: Intro to the LLVM MC Project
blog.llvm.org
LLVM Project Blog: Intro to the LLVM MC Project

Chris Lattner

Sat, 10 Apr 2010 06:27:00 GM

You can break down the MC-related . data structures. and components into "that which operates on instructions" and "that which does other stuff". To provide a consistent abstraction we introduced the new MCInst class to represent an ...

Google Blogs Search: Data structures,
Fri Sep 3 06:35:33 2010
How to study Data structures?
Q. There are lot of algorithms to memorize. How can I memorize all of them easily?
Asked by ryan - Tue Mar 24 13:49:48 2009 - - 1 Answers - 0 Comments

A. once you understand the main concept/logic behind a particular data structure(insertion , deletion , display etc ) it will be easy to code irrespective of language or algorithm or method (linked lists / arrays / structures etc)
Answered by . . . . - Tue Mar 24 14:00:03 2009

Yahoo Answers Search: Data structures,
Fri Sep 3 06:35:33 2010