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<E> <font color=#0000ff>parent</font>(Position<E> 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<E> 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<E> v, <font color=#8000a0>E </font>o) <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException { BTPos<E> 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<E> <font color=#0000ff>add</font>(E e) { <font color=#8000a0><font color=#8000a0>int</font> </font>i = <font color=#0000ff>size</font>() + 1; BTPos<E> p = <font color=#8000a0><font color=#ff8000>new</font> </font>BTPos<E><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<E> <font color=#0000ff>checkPosition</font>(Position<E> 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<E>) 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<E> <font color=#0000ff>iterator</font>() { ArrayList<E> list = <font color=#8000a0><font color=#ff8000>new</font> </font>ArrayList<E><font color=#0000ff></font>(); Iterator<BTPos<E>> 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 + -
显示快捷键?