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 + -
显示快捷键?