linkedbinarytree-linkedbinarytree3.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>// Additional accessor method</font>  <font color = #ff0080>/** Return the sibling of a node */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Position&lt;E&gt; <font color=#0000ff>sibling</font>(Position&lt;E&gt; v)     <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException, BoundaryViolationException {      BTPosition&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);      BTPosition&lt;E&gt; parentPos = vv.<font color=#0000ff>getParent</font>();      <font color=#ff8000>if</font><font color=#0000ff> </font>(parentPos != null) {	BTPosition&lt;E&gt; sibPos;	BTPosition&lt;E&gt; leftPos = parentPos.<font color=#0000ff>getLeft</font>();	<font color=#ff8000>if</font><font color=#0000ff> </font>(leftPos == vv)	  sibPos = parentPos.<font color=#0000ff>getRight</font>();	<font color=#ff8000>else</font>	  sibPos = parentPos.<font color=#0000ff>getLeft</font>();	<font color=#ff8000>if</font><font color=#0000ff> </font>(sibPos != null)	  <font color=#8000a0><font color=#ff8000>return</font> </font>sibPos;      }      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>BoundaryViolationException</font>(<font color=#008000>"No sibling"</font>);  }  <font color=#ff0080>// Additional update methods</font>  <font color = #ff0080>/** Adds a root node to an empty tree */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Position&lt;E&gt; <font color=#0000ff>addRoot</font>(E e) <font color=#8000a0><font color=#ff8000>throws</font> </font>NonEmptyTreeException {    <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>NonEmptyTreeException</font>(<font color=#008000>"Tree already has a root"</font>);    size = 1;    root = <font color=#0000ff>createNode</font>(e,null,null,null);    <font color=#8000a0><font color=#ff8000>return</font> </font>root;  }  <font color = #ff0080>/** Inserts a left child at a given node. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Position&lt;E&gt;  <font color=#0000ff>insertLeft</font>(Position&lt;E&gt; v, <font color=#8000a0>E </font>e)    <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException {    BTPosition&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);    Position&lt;E&gt; leftPos = vv.<font color=#0000ff>getLeft</font>();    <font color=#ff8000>if</font><font color=#0000ff> </font>(leftPos != null)      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>InvalidPositionException</font>(<font color=#008000>"Node already has a left child"</font>);    BTPosition&lt;E&gt; ww = <font color=#0000ff>createNode</font>(e, vv, null, null);    vv.<font color=#0000ff>setLeft</font>(ww);    size++;    <font color=#8000a0><font color=#ff8000>return</font> </font>ww;  }</dl></body></html>

⌨️ 快捷键说明

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