nodepositionlist-checkposition.html

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

HTML
44
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre>  <font color = #ff0080>/** Constructor that creates an empty list; O(1) time */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font><font color=#0000ff>NodePositionList</font>() {    numElts = 0;    header = <font color=#8000a0><font color=#ff8000>new</font> </font>DNode&lt;E&gt;<font color=#0000ff></font>(null, null, null);	<font color=#ff0080>// create header</font>    trailer = <font color=#8000a0><font color=#ff8000>new</font> </font>DNode&lt;E&gt;<font color=#0000ff></font>(header, null, 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>/** Checks if position is valid for this list and converts it to    *  DNode if it is valid; O(1) time */</font>  <font color=#8000a0><font color=#8000a0>protected</font> </font>DNode&lt;E&gt; <font color=#0000ff>checkPosition</font>(Position&lt;E&gt; p)    <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException {    <font color=#ff8000>if</font><font color=#0000ff> </font>(p == null)      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> InvalidPositionException<font color=#0000ff>	</font>(<font color=#008000>"Null position passed to NodeList"</font>);    <font color=#ff8000>if</font><font color=#0000ff> </font>(p == header)	<font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> InvalidPositionException<font color=#0000ff>	  </font>(<font color=#008000>"The header node is not a valid position"</font>);    <font color=#ff8000>if</font><font color=#0000ff> </font>(p == trailer)	<font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> InvalidPositionException<font color=#0000ff>	  </font>(<font color=#008000>"The trailer node is not a valid position"</font>);    <font color=#ff8000>try</font> {      DNode&lt;E&gt; temp =<font color=#0000ff> </font>(DNode&lt;E&gt;) p;      <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff></font>(temp.<font color=#0000ff>getPrev</font>() == null) ||<font color=#0000ff> </font>(temp.<font color=#0000ff>getNext</font>() == null))	<font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> InvalidPositionException<font color=#0000ff>	  </font>(<font color=#008000>"Position does not belong to a valid NodeList"</font>);      <font color=#8000a0><font color=#ff8000>return</font> </font>temp;    } <font color=#ff8000>catch</font><font color=#0000ff> </font>(ClassCastException e) {      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> InvalidPositionException<font color=#0000ff>	</font>(<font color=#008000>"Position is of wrong type for this list"</font>);    }  }</dl></body></html>

⌨️ 快捷键说明

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