linkedbinarytree-linkedbinarytree4.html

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

HTML
46
字号
<html><head><title>Code Fragment</title></head><body text=#000000><center></center><br><br><dl><dd><pre>  <font color = #ff0080>/** Removes a node with zero or one child. */</font>  <font color=#8000a0><font color=#8000a0>public</font> </font>E <font color=#0000ff>remove</font>(Position&lt;E&gt; v)    <font color=#8000a0><font color=#ff8000>throws</font> </font>InvalidPositionException {    BTPosition&lt;E&gt; vv = <font color=#0000ff>checkPosition</font>(v);    BTPosition&lt;E&gt; leftPos = vv.<font color=#0000ff>getLeft</font>();    BTPosition&lt;E&gt; rightPos = vv.<font color=#0000ff>getRight</font>();    <font color=#ff8000>if</font><font color=#0000ff> </font>(leftPos != null && rightPos != null)      <font color=#8000a0><font color=#ff8000>throw</font> </font><font color=#ff8000>new</font> <font color=#0000ff>InvalidPositionException</font>(<font color=#008000>"Cannot remove node with two children"</font>);    BTPosition&lt;E&gt; ww; 	<font color=#ff0080>// the only child of v, if any</font>    <font color=#ff8000>if</font><font color=#0000ff> </font>(leftPos != null)      ww = leftPos;    <font color=#8000a0><font color=#ff8000>else</font> </font><font color=#ff8000>if</font><font color=#0000ff> </font>(rightPos != null)      ww = rightPos;    <font color=#ff8000>else</font> 		<font color=#ff0080>// v is a leaf</font>      ww = null;    <font color=#ff8000>if</font><font color=#0000ff> </font>(vv == root) { 	<font color=#ff0080>// v is the root</font>      <font color=#ff8000>if</font><font color=#0000ff> </font>(ww != null)	ww.<font color=#0000ff>setParent</font>(null);      root = ww;    }    <font color=#ff8000>else</font> { 		<font color=#ff0080>// v is not the root</font>      BTPosition&lt;E&gt; uu = vv.<font color=#0000ff>getParent</font>();      <font color=#ff8000>if</font><font color=#0000ff> </font>(vv == uu.<font color=#0000ff>getLeft</font>())	uu.<font color=#0000ff>setLeft</font>(ww);      <font color=#ff8000>else</font>	uu.<font color=#0000ff>setRight</font>(ww);      <font color=#ff8000>if</font><font color=#0000ff></font>(ww != null)	ww.<font color=#0000ff>setParent</font>(uu);    }    size--;    <font color=#8000a0><font color=#ff8000>return</font> </font>v.<font color=#0000ff>element</font>();  }</dl></body></html>

⌨️ 快捷键说明

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