arraylistcompletebinarytree-vectorheap3.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 v. */</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 {     <font color=#ff8000>if</font><font color=#0000ff> </font>(<font color=#0000ff>isRoot</font>(v)) <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>);    BTPos&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);    <font color=#8000a0><font color=#ff8000>return</font> </font>T.<font color=#0000ff>get</font>(vv.<font color=#0000ff>index</font>()/2);  }  <font color = #ff0080>/** Replaces the element at v. */</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 {    BTPos&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);    <font color=#8000a0><font color=#ff8000>return</font> </font>vv.<font color=#0000ff>setElement</font>(o);  }  <font color = #ff0080>/** Adds an element just after the last node (in a level numbering). */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Position&lt;E&gt; <font color=#0000ff>add</font>(E e) {    <font color=#8000a0><font color=#8000a0>int</font> </font>i = <font color=#0000ff>size</font>() + 1;    BTPos&lt;E&gt; p = <font color=#8000a0><font color=#ff8000>new</font> </font>BTPos&lt;E&gt;<font color=#0000ff></font>(e,i);    T.<font color=#0000ff>add</font>(i, p);    <font color=#8000a0><font color=#ff8000>return</font> </font>p;  }  <font color = #ff0080>/** Removes and returns the element at the last node. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>E <font color=#0000ff>remove</font>() <font color=#8000a0><font color=#ff8000>throws</font> </font>EmptyTreeException {    <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>EmptyTreeException</font>(<font color=#008000>"Tree is empty"</font>);    <font color=#8000a0><font color=#ff8000>return</font> </font>T.<font color=#0000ff>remove</font>(<font color=#0000ff>size</font>()).<font color=#0000ff>element</font>();   }  <font color = #ff0080>/** Determines whether the given position is a valid node. */</font>  <font color=#8000a0><font color=#8000a0>protected</font> </font>BTPos&lt;E&gt; <font color=#0000ff>checkPosition</font>(Position&lt;E&gt; v)     <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException   {    <font color=#ff8000>if</font><font color=#0000ff> </font>(v == null || !<font color=#0000ff></font>(v <font color=#8000a0>instanceof </font>BTPos))      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>InvalidPositionException</font>(<font color=#008000>"Position is invalid"</font>);    <font color=#ff8000>return</font><font color=#0000ff> </font>(BTPos&lt;E&gt;) v;  }  <font color = #ff0080>/** Returns an iterator of the elements stored at all nodes in the tree. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>Iterator&lt;E&gt; <font color=#0000ff>iterator</font>() {     ArrayList&lt;E&gt; list = <font color=#8000a0><font color=#ff8000>new</font> </font>ArrayList&lt;E&gt;<font color=#0000ff></font>();    Iterator&lt;BTPos&lt;E&gt;&gt; iter = T.<font color=#0000ff>iterator</font>();    iter.<font color=#0000ff>next</font>(); <font color=#ff0080>// skip the first element</font>    <font color=#ff8000>while</font><font color=#0000ff> </font>(iter.<font color=#0000ff>hasNext</font>())      list.<font color=#0000ff>add</font>(iter.<font color=#0000ff>next</font>().<font color=#0000ff>element</font>());    <font color=#8000a0><font color=#ff8000>return</font> </font>list.<font color=#0000ff>iterator</font>();  } } </dl></body></html>

⌨️ 快捷键说明

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