[#BloombergLP-bslalg-BidirectionalLinkListUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::BidirectionalLinkListUtil
:relfileprefix: ../../
:mrdocs:

Namespace for utility functions that manipulate bidirectional linked lists&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;bidirectionallinklistutil&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct BidirectionalLinkListUtil;
----

== Description

This `struct` provides a namespace for utility functions that manipulate linked lists based on `bslalg&colon;&colon;BidirectionalLink` nodes, including insertion, removal, and _splicing_&period;

== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/BidirectionalLinkListUtil/insertLinkAfterTarget.adoc[`insertLinkAfterTarget`] 
| Insert the specified `newNode` after the specified `target` node&period;
| xref:BloombergLP/bslalg/BidirectionalLinkListUtil/insertLinkBeforeTarget.adoc[`insertLinkBeforeTarget`] 
| Insert the specified `newNode` before the specified `target` node&period;
| xref:BloombergLP/bslalg/BidirectionalLinkListUtil/isWellFormed.adoc[`isWellFormed`] 
| Return `true` if the list from `head` to `tail` is well formed&period;
| xref:BloombergLP/bslalg/BidirectionalLinkListUtil/spliceListBeforeTarget.adoc[`spliceListBeforeTarget`] 
| Splice the range `&lsqb;first, last&rsqb;` into another list before `target`&period;
| xref:BloombergLP/bslalg/BidirectionalLinkListUtil/unlink.adoc[`unlink`] 
| Unlink the specified `node` from its bidirectional linked list&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
