linkedbinarytree-linkedbinarytree2.html

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

HTML
55
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre>  <font color = #ff0080>/** Returns the parent of a node. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Position&lt;E&gt; <font color=#0000ff>parent</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);    Position&lt;E&gt; parentPos = vv.<font color=#0000ff>getParent</font>();    <font color=#ff8000>if</font><font color=#0000ff> </font>(parentPos == null)      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>BoundaryViolationException</font>(<font color=#008000>"No parent"</font>);    <font color=#8000a0><font color=#ff8000>return</font> </font>parentPos;   }  <font color = #ff0080>/** Returns an iterable collection of the children of a node. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Iterable&lt;Position&lt;E&gt;&gt; <font color=#0000ff>children</font>(Position&lt;E&gt; v)     <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException {    PositionList&lt;Position&lt;E&gt;&gt; children = <font color=#8000a0><font color=#ff8000>new</font> </font>NodePositionList&lt;Position&lt;E&gt;&gt;<font color=#0000ff></font>();    <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>hasLeft</font>(v))      children.<font color=#0000ff>addLast</font>(<font color=#0000ff>left</font>(v));    <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>hasRight</font>(v))      children.<font color=#0000ff>addLast</font>(<font color=#0000ff>right</font>(v));    <font color=#8000a0><font color=#ff8000>return</font> </font>children;  }  <font color = #ff0080>/** Returns an iterable collection of the tree nodes. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Iterable&lt;Position&lt;E&gt;&gt; <font color=#0000ff>positions</font>() {   PositionList&lt;Position&lt;E&gt;&gt; positions = <font color=#8000a0><font color=#ff8000>new</font> </font>NodePositionList&lt;Position&lt;E&gt;&gt;<font color=#0000ff></font>();    <font color=#ff8000>if</font><font color=#0000ff></font>(size != 0)      <font color=#0000ff>preorderPositions</font>(<font color=#0000ff>root</font>(), positions);  <font color=#ff0080>// assign positions in preorder</font>    <font color=#8000a0><font color=#ff8000>return</font> </font>positions;  }  <font color = #ff0080>/** Returns an iterator of the elements stored at the nodes */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Iterator&lt;E&gt; <font color=#0000ff>iterator</font>() {    Iterable&lt;Position&lt;E&gt;&gt; positions = <font color=#0000ff>positions</font>();   PositionList&lt;E&gt; elements = <font color=#8000a0><font color=#ff8000>new</font> </font>NodePositionList&lt;E&gt;<font color=#0000ff></font>();   <font color=#ff8000>for</font><font color=#0000ff> </font>(Position&lt;E&gt; pos: positions)      elements.<font color=#0000ff>addLast</font>(pos.<font color=#0000ff>element</font>());    <font color=#8000a0><font color=#ff8000>return</font> </font>elements.<font color=#0000ff>iterator</font>();  <font color=#ff0080>// An iterator of elements</font>  }  <font color = #ff0080>/** Replaces the element at a node. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>E <font color=#0000ff>replace</font>(Position&lt;E&gt; v, <font color=#8000a0>E </font>o)     <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException {    BTPosition&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);    <font color=#8000a0>E </font>temp = v.<font color=#0000ff>element</font>();    vv.<font color=#0000ff>setElement</font>(o);    <font color=#8000a0><font color=#ff8000>return</font> </font>temp;  }</dl></body></html>

⌨️ 快捷键说明

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