dlist-header.html

来自「经典的数据结构源代码(java 实现)」· HTML 代码 · 共 52 行

HTML
52
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre><font color = #ff0080>/** Doubly linked list with nodes of type DNode storing strings. */</font><font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>DList {  <font color=#8000a0><font color=#8000a0>protected</font> </font><font color=#8000a0>int</font> size;			<font color=#ff0080>// number of elements</font>  <font color=#8000a0><font color=#8000a0>protected</font> </font>DNode header, trailer;	<font color=#ff0080>// sentinels</font>  <font color = #ff0080>/** Constructor that creates an empty list */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>DList</font>() {     size = 0;    header = <font color=#8000a0><font color=#ff8000>new</font> </font><font color=#0000ff>DNode</font>(null, null, null);	<font color=#ff0080>// create header</font>    trailer = <font color=#8000a0><font color=#ff8000>new</font> </font><font color=#0000ff>DNode</font>(null, header, null);	<font color=#ff0080>// create trailer</font>    header.<font color=#0000ff>setNext</font>(trailer);	<font color=#ff0080>// make header and trailer point to each other</font>  }  <font color = #ff0080>/** Returns the number of elements in the list */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>int</font> <font color=#0000ff>size</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>size; }  <font color = #ff0080>/** Returns whether the list is empty */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>boolean</font> <font color=#0000ff>isEmpty</font>() { <font color=#ff8000>return</font><font color=#0000ff> </font>(size == 0); }  <font color = #ff0080>/** Returns the first node of the list */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>DNode <font color=#0000ff>getFirst</font>() <font color=#8000a0><font color=#ff8000>throws</font> </font>IllegalStateException {    <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>isEmpty</font>()) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>IllegalStateException</font>(<font color=#008000>"List is empty"</font>);    <font color=#8000a0><font color=#ff8000>return</font> </font>header.<font color=#0000ff>getNext</font>();  }  <font color = #ff0080>/** Returns the last node of the list */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>DNode <font color=#0000ff>getLast</font>() <font color=#8000a0><font color=#ff8000>throws</font> </font>IllegalStateException {    <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>isEmpty</font>()) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>IllegalStateException</font>(<font color=#008000>"List is empty"</font>);    <font color=#8000a0><font color=#ff8000>return</font> </font>trailer.<font color=#0000ff>getPrev</font>();  }  <font color=#ff0080>/** Returns the node before the given node v. An error occurs if v    * is the header */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>DNode <font color=#0000ff>getPrev</font>(DNode v) <font color=#8000a0><font color=#ff8000>throws</font> </font>IllegalArgumentException {    <font color=#ff8000>if</font><font color=#0000ff> </font>(v == header) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> IllegalArgumentException<font color=#0000ff>      </font>(<font color=#008000>"Cannot move back past the header of the list"</font>);    <font color=#8000a0><font color=#ff8000>return</font> </font>v.<font color=#0000ff>getPrev</font>();  }  <font color=#ff0080>/** Returns the node after the given node v. An error occurs if v    * is the trailer */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>DNode <font color=#0000ff>getNext</font>(DNode v) <font color=#8000a0><font color=#ff8000>throws</font> </font>IllegalArgumentException {    <font color=#ff8000>if</font><font color=#0000ff> </font>(v == trailer) <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> IllegalArgumentException<font color=#0000ff>      </font>(<font color=#008000>"Cannot move forward past the trailer of the list"</font>);   <font color=#8000a0><font color=#ff8000>return</font> </font>v.<font color=#0000ff>getNext</font>();  }</dl></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?