circlelist-circle.html

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

HTML
59
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre><font color = #ff0080>/** Circulary linked list with nodes of type Node storing strings. */</font><font color=#8000a0>public</font> <font color=#8000a0><font color=#ff8000>class</font> </font>CircleList {  <font color=#8000a0><font color=#8000a0>protected</font> </font>Node cursor;	<font color=#ff0080>// the current cursor </font>  <font color=#8000a0><font color=#8000a0>protected</font> </font><font color=#8000a0>int</font> size;	        <font color=#ff0080>// the number of nodes in the list</font>  <font color = #ff0080>/** Constructor that creates and empty list */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>CircleList</font>() { cursor = null; size = 0; }  <font color = #ff0080>/** Returns the current size */</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 the cursor */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Node <font color=#0000ff>getCursor</font>() { <font color=#8000a0><font color=#ff8000>return</font> </font>cursor; }  <font color = #ff0080>/** Moves the cursor forward */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>void</font> <font color=#0000ff>advance</font>() { cursor = cursor.<font color=#0000ff>getNext</font>(); }  <font color = #ff0080>/** Adds a node after the cursor  */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>void</font> <font color=#0000ff>add</font>(Node newNode) {    <font color=#ff8000>if</font><font color=#0000ff> </font>(cursor == null) {    <font color=#ff0080>// list is empty</font>      newNode.<font color=#0000ff>setNext</font>(newNode);      cursor = newNode;    }    <font color=#ff8000>else</font> {      newNode.<font color=#0000ff>setNext</font>(cursor.<font color=#0000ff>getNext</font>());      cursor.<font color=#0000ff>setNext</font>(newNode);    }    size++;  }  <font color = #ff0080>/** Removes the node after the cursor */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Node <font color=#0000ff>remove</font>() {    <font color=#8000a0>Node </font>oldNode = cursor.<font color=#0000ff>getNext</font>();	<font color=#ff0080>// the node being removed</font>    <font color=#ff8000>if</font><font color=#0000ff> </font>(oldNode == cursor)       cursor = null; <font color=#ff0080>// list is becoming empty</font>    <font color=#ff8000>else</font> {      cursor.<font color=#0000ff>setNext</font>(oldNode.<font color=#0000ff>getNext</font>());	<font color=#ff0080>// link out the old node </font>      oldNode.<font color=#0000ff>setNext</font>(null);     }    size--;    <font color=#8000a0><font color=#ff8000>return</font> </font>oldNode;  }  <font color = #ff0080>/** Returns a string representation of the list, starting from the cursor */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#8000a0>String</font> <font color=#0000ff>toString</font>() {    <font color=#ff8000>if</font><font color=#0000ff> </font>(cursor == null) <font color=#ff8000>return</font> <font color=#008000>"[]"</font>;    <font color=#8000a0><font color=#8000a0>String</font> </font>s = <font color=#008000>"[..."</font> + cursor.<font color=#0000ff>getElement</font>();    <font color=#8000a0>Node </font>oldCursor = cursor;    <font color=#ff8000>for</font><font color=#0000ff> </font>(<font color=#0000ff>advance</font>(); oldCursor != cursor; <font color=#0000ff>advance</font>())       s += <font color=#008000>", "</font> + cursor.<font color=#0000ff>getElement</font>();    <font color=#8000a0><font color=#ff8000>return</font> </font>s + <font color=#008000>"...]"</font>;  }}</dl></body></html>

⌨️ 快捷键说明

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