The doubly-linked-list Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The doubly-linked-list Reference Manual

This is the doubly-linked-list Reference Manual, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Apr 28 11:42:28 2020 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

doubly-linked-list

An implementation of the doubly linked list data structure.

Overview

This system provides an implementation of the doubly linked list data structure, where a list holds sequential nodes, each having a link to the previous and next node in the sequence.

Install

(ql:quickload :doubly-linked-list)

Usage

For usage instructions, please see the accompanying documentation strings.

License

Copyright © 2008-2020 Michael Fiano.

Licensed under the MIT License.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 doubly-linked-list

Maintainer

Michael Fiano <mail@michaelfiano.com>

Author

Michael Fiano <mail@michaelfiano.com>

Home Page

https://www.michaelfiano.com/projects/doubly-linked-list

Source Control

(:git "git@github.com:mfiano/doubly-linked-list.git")

Bug Tracker

https://github.com/mfiano/doubly-linked-list/issues

License

MIT

Description

An implementation of the doubly linked list data structure.

Dependencies
Source

doubly-linked-list.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 doubly-linked-list.asd

Location

/home/quickref/quicklisp/dists/quicklisp/software/doubly-linked-list-20200427-git/doubly-linked-list.asd

Systems

doubly-linked-list (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 doubly-linked-list/package.lisp

Parent

doubly-linked-list (system)

Location

package.lisp

Packages

doubly-linked-list


Previous: , Up: Lisp files   [Contents][Index]

3.1.3 doubly-linked-list/doubly-linked-list.lisp

Dependency

package.lisp (file)

Parent

doubly-linked-list (system)

Location

doubly-linked-list.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 doubly-linked-list

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Functions

Function: delete LIST OBJECT &key KEY TEST FROM-END

Delete an object from the doubly linked list ‘LIST‘.

‘OBJECT‘ can be either a NODE object, or some value that is stored in the value of a NODE object. In the case of a non-NODE value, the list is searched linearly for a matching node before deletion occurs. Returns two values, the modified list, and a boolean specifying if a node was deleted.

‘KEY‘ specifies a function that is called with ‘OBJECT‘ as its only argument, if ‘OBJECT‘ is not of type node. It defaults to ‘#’IDENTITY‘. This argument has no effect if ‘OBJECT‘ is of type NODE.

‘TEST‘ specifies a function used to compare the value of ‘OBJECT‘ as it traverses nodes in the list. It defaults to ‘#’EQL‘. This argument has no effect if ‘OBJECT‘ is of type NODE.

Note: As specified above, this function traverses the list linearly for an object to delete if ‘OBJECT‘ is not a NODE.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: find LIST VALUE &key START END KEY TEST FROM-END

Search for a node with the given ‘VALUE‘ in the doubly linked list ‘LIST‘.

‘START‘ and ‘END‘ are NODE objects to begin and end searching, inclusively.

‘KEY‘ specifies a function that is called with ‘VALUE‘ as its only argument. It defaults to ‘#’IDENTITY‘.

‘TEST‘ specifies a function used to compare the‘VALUE‘ as it traverses nodes in the list. It defaults to ‘#’EQL‘.

‘FROM-END‘, when specified, traverses the list in reverse, from tail to head.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: head INSTANCE
Function: (setf head) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: insert LIST VALUE &key TARGET WHERE

Insert a new node into the doubly linked list ‘LIST‘, constructed to hold ‘VALUE‘.

‘TARGET‘ is an existing node to place the new node adjacent to. If ‘TARGET‘ is NIL, the head is implicitly targetted.

‘WHERE‘ can be either ‘:BEFORE‘ or ‘:AFTER‘, and specifies on which side of the target node to insert the new node. If unspecified, defaults to ‘:AFTER‘.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: length LIST

Return the number of elements in the doubly linked list ‘LIST‘.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: list-values LIST

Convert the doubly-linked list ‘LIST‘ into a Lisp list of its nodes’ values.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: make-list &rest VALUES

Create a new doubly linked list, optionally pre-populated with ‘VALUES‘.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: next INSTANCE
Function: (setf next) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: previous INSTANCE
Function: (setf previous) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: tail INSTANCE
Function: (setf tail) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: value INSTANCE
Function: (setf value) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Structures

Structure: list ()

A doubly linked list that holds sequential nodes which have links to their previous and next node.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods

print-object (method)

Direct slots
Slot: head
Readers

head (function)

Writers

(setf head) (function)

Slot: tail
Readers

tail (function)

Writers

(setf tail) (function)

Slot: %length
Type

fixnum

Initform

0

Readers

%length (function)

Writers

(setf %length) (function)

Structure: node ()

A doubly linked list node with references to its previous and next node.

Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Direct superclasses

structure-object (structure)

Direct methods

print-object (method)

Direct slots
Slot: value
Readers

value (function)

Writers

(setf value) (function)

Slot: previous
Readers

previous (function)

Writers

(setf previous) (function)

Slot: next
Readers

next (function)

Writers

(setf next) (function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Functions

Function: %length INSTANCE
Function: (setf %length) VALUE INSTANCE
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: %make-list &key (HEAD HEAD) (TAIL TAIL) (%LENGTH %LENGTH)
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: make-node &key (VALUE VALUE) (PREVIOUS PREVIOUS) (NEXT NEXT)
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)

Function: node-p OBJECT
Package

doubly-linked-list

Source

doubly-linked-list.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   D   F   L  
Index Entry  Section

D
doubly-linked-list.asd: The doubly-linked-list․asd file
doubly-linked-list/doubly-linked-list.lisp: The doubly-linked-list/doubly-linked-list․lisp file
doubly-linked-list/package.lisp: The doubly-linked-list/package․lisp file

F
File, Lisp, doubly-linked-list.asd: The doubly-linked-list․asd file
File, Lisp, doubly-linked-list/doubly-linked-list.lisp: The doubly-linked-list/doubly-linked-list․lisp file
File, Lisp, doubly-linked-list/package.lisp: The doubly-linked-list/package․lisp file

L
Lisp File, doubly-linked-list.asd: The doubly-linked-list․asd file
Lisp File, doubly-linked-list/doubly-linked-list.lisp: The doubly-linked-list/doubly-linked-list․lisp file
Lisp File, doubly-linked-list/package.lisp: The doubly-linked-list/package․lisp file

Jump to:   D   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
D   F   H   I   L   M   N   P   T   V  
Index Entry  Section

%
%length: Internal functions
%make-list: Internal functions

(
(setf %length): Internal functions
(setf head): Exported functions
(setf next): Exported functions
(setf previous): Exported functions
(setf tail): Exported functions
(setf value): Exported functions

D
delete: Exported functions

F
find: Exported functions
Function, %length: Internal functions
Function, %make-list: Internal functions
Function, (setf %length): Internal functions
Function, (setf head): Exported functions
Function, (setf next): Exported functions
Function, (setf previous): Exported functions
Function, (setf tail): Exported functions
Function, (setf value): Exported functions
Function, delete: Exported functions
Function, find: Exported functions
Function, head: Exported functions
Function, insert: Exported functions
Function, length: Exported functions
Function, list-values: Exported functions
Function, make-list: Exported functions
Function, make-node: Internal functions
Function, next: Exported functions
Function, node-p: Internal functions
Function, previous: Exported functions
Function, tail: Exported functions
Function, value: Exported functions

H
head: Exported functions

I
insert: Exported functions

L
length: Exported functions
list-values: Exported functions

M
make-list: Exported functions
make-node: Internal functions

N
next: Exported functions
node-p: Internal functions

P
previous: Exported functions

T
tail: Exported functions

V
value: Exported functions

Jump to:   %   (  
D   F   H   I   L   M   N   P   T   V  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   %  
H   N   P   S   T   V  
Index Entry  Section

%
%length: Exported structures

H
head: Exported structures

N
next: Exported structures

P
previous: Exported structures

S
Slot, %length: Exported structures
Slot, head: Exported structures
Slot, next: Exported structures
Slot, previous: Exported structures
Slot, tail: Exported structures
Slot, value: Exported structures

T
tail: Exported structures

V
value: Exported structures

Jump to:   %  
H   N   P   S   T   V  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   D   L   N   P   S  
Index Entry  Section

D
doubly-linked-list: The doubly-linked-list system
doubly-linked-list: The doubly-linked-list package

L
list: Exported structures

N
node: Exported structures

P
Package, doubly-linked-list: The doubly-linked-list package

S
Structure, list: Exported structures
Structure, node: Exported structures
System, doubly-linked-list: The doubly-linked-list system

Jump to:   D   L   N   P   S