FACTOID # 2: Puerto Rico has roughly the same gross state product as Montana, Wyoming and North Dakota combined.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Persistent data structure

In computing, a persistent data structure is a data structure which always preserves the previous version of itself when it is modified; such data structures are effectively immutable, as their operations do not (visibly) update the structure in-place, but instead always yield a new updated structure. Originally, the word computing was synonymous with counting and calculating, and a science and technology that deals with the original sense of computing mathematical calculations. ... A binary tree, a simple type of branching linked data structure. ... In computing, immutable refers to: the immutable design pattern in programming an immutable object in object-oriented programming This is a disambiguation page — a navigational aid which lists other pages that might otherwise share the same title. ...


A data structure is partially persistent if all versions can be accessed but only the newest version can be modified. The data structure is fully persistent if every version can be both accessed and modified. If there is also a meld or merge operation that can create a new version from two previous versions, the data structure is called confluently persistent. Structures that are not persistent are called ephemeral.


These type of data structures are particularly common in logical and functional programming, and in a purely functional program all data is immutable, so all data structures are automatically fully persistent. Persistent data structures can also be created using in-place updating of data and these may be, in general, use less time or storage space than their purely functional counterparts. Logic programming (sometimes called logical programming) is programming that makes use of pattern-directed invocation of procedures from assertions and goals. ... Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. ... Purely functional is a term in computing used to describe algorithms, data structures or programming languages that exclude destructive modifications (updates). ...


While persistence can be achieved by simple copying, this is inefficient in time and space, because most operations make only small changes to a data structure. A better method is to exploit the similarity between the new and old versions to share structure between them, such as using the same subtree in a number of tree structures. However, because it rapidly becomes infeasible to determine how many previous versions share which parts of the structure, and because it is often desirable to discard old versions, this necessitates an environment with garbage collection. A tree structure is a way of representing the hierarchical nature of a structure in a graphical form. ... In computer science, garbage collection (also known as GC) is a form of automatic memory management. ...


Perhaps the simplest persistent data structure is the singly-linked list or cons-based list, a simple list of objects formed by each carrying a reference to the next in the list. This is persistent because we can take a tail of the list, meaning the last k items for some k, and add new nodes on to the front of it. The tail will not be duplicated, instead becoming shared between both the old list and the new list. So long as the contents of the tail are immutable, this sharing will be invisible to the program. In computer science, a linked list is one of the fundamental data structures used in computer programming. ... In general, a reference is something that refers or points to something else, or acts as a connection or a link between two things. ...


Many common reference-based data structures, such as red-black trees, and queues, can easily be adapted to create a persistent version. One persistent counterpart to the array is the VList data structure described in 2002 by Phil Bagwell. A red-black tree is a type of self-balancing binary search tree, a data structure used in computer science, typically used to implement associative arrays. ... In providing services in computer science, transport, and operations research a queue (pronounced kyew) is a buffer where various entities such as data, objects, persons, or events are stored and waiting to be processed. ... In computer programming, a group of homogeneous elements of a specific data type is known as an array, one of the simplest data structures. ... If you are seeking the town in the Netherlands, see Vlist. ...


See also



  Results from FactBites:
 
Data structure Summary (1608 words)
Data structures are implemented using the data types, references and operations on them provided by a programming language.
After the data structures are chosen, the algorithms to be used often become relatively obvious.
A data structure can be viewed as an interface between two functions or as an implementation of methods to access storage that is organized according to the associated data type.
Persistent data structure - Wikipedia, the free encyclopedia (338 words)
In computing, a persistent data structure is a data structure which always preserves the previous version of itself when it is modified; such data structures are effectively immutable, as their operations do not (visibly) update the structure in-place, but instead always yield a new updated structure.
These type of data structures are particularly common in functional programming, and in a purely functional program all data is immutable.
The persistent counterpart to the array is the VList data structure described in 2002 by Phil Bagwell.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m