Ada Programming/Libraries/Ada.Containers.Indefinite Doubly Linked Lists
Appearance
This language feature is only available from Ada 2005 on.
Ada.Containers.Indefinite_Doubly_Linked_Lists is a unit of the Predefined Language Environment since Ada 2005.
Specification
[edit | edit source]-- Standard Ada library specification -- Copyright (c) 2003-2018 Maxim Reznik <reznikmm@gmail.com> -- Copyright (c) 2004-2016 AXE Consultants -- Copyright (c) 2004, 2005, 2006 Ada-Europe -- Copyright (c) 2000 The MITRE Corporation, Inc. -- Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc. -- SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual -- -------------------------------------------------------------------------generictypeElement_Type (<>)isprivate;withfunction"=" (Left :inElement_Type; Right :inElement_Type)returnBooleanis<>;packageAda.Containers.Indefinite_Doubly_Linked_ListsispragmaPreelaborate (Indefinite_Doubly_Linked_Lists);typeLististaggedprivate;pragmaPreelaborable_Initialization (List);typeCursorisprivate;pragmaPreelaborable_Initialization (Cursor); Empty_List :constantList; No_Element :constantCursor;function"=" (Left :inList; Right :inList)returnBoolean;functionLength (Container :inList)returnCount_Type;functionIs_Empty (Container :inList)returnBoolean;procedureClear (Container :inoutList);functionElement (Position :inCursor)returnElement_Type;procedureReplace_Element (Container :inoutList; Position :inCursor; New_Item :inElement_Type);procedureQuery_Element (Position :inCursor; Process :notnullaccessprocedure(Element :inElement_Type));procedureUpdate_Element (Container :inoutList; Position :inCursor; Process :notnullaccessprocedure(Element :inoutElement_Type));procedureMove (Target :inoutList; Source :inoutList);procedureInsert (Container :inoutList; Before :inCursor; New_Item :inElement_Type; Count :inCount_Type := 1);procedureInsert (Container :inoutList; Before :inCursor; New_Item :inElement_Type; Position :outCursor; Count :inCount_Type := 1);procedurePrepend (Container :inoutList; New_Item :inElement_Type; Count :inCount_Type := 1);procedureAppend (Container :inoutList; New_Item :inElement_Type; Count :inCount_Type := 1);procedureDelete (Container :inoutList; Position :inoutCursor; Count :inCount_Type := 1);procedureDelete_First (Container :inoutList; Count :inCount_Type := 1);procedureDelete_Last (Container :inoutList; Count :inCount_Type := 1);procedureReverse_Elements (Container :inoutList);procedureSwap (Container :inoutList; I :inCursor; J :inCursor);procedureSwap_Links (Container :inoutList; I :inCursor; J :inCursor);procedureSplice (Target :inoutList; Before :inCursor; Source :inoutList);procedureSplice (Target :inoutList; Before :inCursor; Source :inoutList; Position :inoutCursor);procedureSplice (Container :inoutList; Before :inCursor; Position :inCursor);functionFirst (Container :inList)returnCursor;functionFirst_Element (Container :inList)returnElement_Type;functionLast (Container :inList)returnCursor;functionLast_Element (Container :inList)returnElement_Type;functionNext (Position :inCursor)returnCursor;functionPrevious (Position :inCursor)returnCursor;procedureNext (Position :inoutCursor);procedurePrevious (Position :inoutCursor);functionFind (Container :inList; Item :inElement_Type; Position :inCursor := No_Element)returnCursor;functionReverse_Find (Container :inList; Item :inElement_Type; Position :inCursor := No_Element)returnCursor;functionContains (Container :inList; Item :inElement_Type)returnBoolean;functionHas_Element (Position :inCursor)returnBoolean;procedureIterate (Container :inList; Process :notnullaccessprocedure(Position :inCursor));procedureReverse_Iterate (Container :inList; Process :notnullaccessprocedure(Position :inCursor));genericwithfunction"<" (Left :inElement_Type; Right :inElement_Type)returnBooleanis<>;packageGeneric_SortingisfunctionIs_Sorted (Container :inList)returnBoolean;procedureSort (Container :inoutList);procedureMerge (Target :inoutList; Source :inoutList);endGeneric_Sorting;privatetypeLististaggednullrecord; Empty_List :constantList := (nullrecord);typeCursorisnullrecord; No_Element :constantCursor := (nullrecord);endAda.Containers.Indefinite_Doubly_Linked_Lists;
See also
[edit | edit source]Wikibook
[edit | edit source]External examples
[edit source]- Search for examples of
Ada.Containers.Indefinite_Doubly_Linked_Listsin: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook. - Search for posts related to
Ada.Containers.Indefinite_Doubly_Linked_Listsin: Stack Overflow, comp.lang.ada or any Ada related page.
Ada Reference Manual
[edit | edit source]Ada 2005
[edit | edit source]Ada 2012
[edit | edit source]Open-Source Implementations
[edit | edit source]FSF GNAT
- Specification: a-cidlli.ads
- Body: a-cidlli.adb
drake
- Specification: containers/a-cidlli.ads
- Body: containers/a-cidlli.adb
