<code class="text">class Node(object):
def __init__(self, value, nextnode=None):
self.value = value
self._nextnode = nextnode
def append(self, n):
if not isinstance(n, Node):
n = Node(n)
self._nextnode, n = n, self._nextnode
self._nextnode._nextnode = n
</code><code class="python"><span class="k">class</span> <span class="nc">TreeNode</span><span class="p">:</span>
<span class="c"># 类的结构已经包含了指向关系</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">val</span> <span class="o">=</span> <span class="n">x</span>
<span class="bp">self</span><span class="o">.</span><span class="n">left</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">right</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">l1</span> <span class="o">=</span> <span class="n">TreeNode</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">l2</span> <span class="o">=</span> <span class="n">TreeNode</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">l3</span> <span class="o">=</span> <span class="n">TreeNode</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
<span class="c"># 引用表示指向关系</span>
<span class="n">l1</span><span class="o">.</span><span class="n">left</span> <span class="o">=</span> <span class="n">l2</span>
<span class="n">l1</span><span class="o">.</span><span class="n">right</span> <span class="o">=</span> <span class="n">l3</span>
</code><code class="text">private class Node<T> {
public Node<T> next;
public T data;
public Node(T d,Node<T> n) {data = d; next = n;}
}
</code><code class="python"><span class="c"># -*- coding: utf-8 -*-</span>
<span class="k">class</span> <span class="nc">Node</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">datum</span><span class="p">,</span> <span class="nb">next</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__datum</span> <span class="o">=</span> <span class="n">datum</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__next</span> <span class="o">=</span> <span class="nb">next</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">datum</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__datum</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__next</span>
<span class="nd">@next.setter</span>
<span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">next</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__next</span> <span class="o">=</span> <span class="nb">next</span>
<span class="k">class</span> <span class="nc">LinkedList</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tail</span> <span class="o">=</span> <span class="bp">None</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">head</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__head</span>
<span class="nd">@property</span>
<span class="k">def</span> <span class="nf">tail</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__tail</span>
<span class="k">def</span> <span class="nf">purge</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tail</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">def</span> <span class="nf">is_empty</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="ow">is</span> <span class="bp">None</span>
<span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
<span class="c">#Generates the node.</span>
<span class="n">datum</span> <span class="o">=</span> <span class="n">Node</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
<span class="c">#For the first node in a linked list, it will change the head.</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="o">=</span> <span class="n">datum</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tail</span><span class="o">.</span><span class="n">next</span> <span class="o">=</span> <span class="n">datum</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tail</span> <span class="o">=</span> <span class="n">datum</span>
<span class="k">def</span> <span class="nf">remove</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
<span class="n">pointer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__head</span>
<span class="n">prepointer</span> <span class="o">=</span> <span class="bp">None</span>
<span class="c">#Finds the item</span>
<span class="k">while</span> <span class="n">pointer</span> <span class="ow">and</span> <span class="n">pointer</span><span class="o">.</span><span class="n">datum</span> <span class="o">!=</span> <span class="n">item</span><span class="p">:</span>
<span class="n">prepointer</span> <span class="o">=</span> <span class="n">pointer</span>
<span class="n">pointer</span> <span class="o">=</span> <span class="n">pointer</span><span class="o">.</span><span class="n">next</span>
<span class="c">#Raise the error when not finding the item.</span>
<span class="k">if</span> <span class="n">pointer</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">KeyError</span>
<span class="c">#When the linked list has one node, it will sets the head.</span>
<span class="k">if</span> <span class="n">pointer</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">__head</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__head</span> <span class="o">=</span> <span class="n">pointer</span><span class="o">.</span><span class="n">next</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">prepointer</span><span class="o">.</span><span class="n">next</span> <span class="o">=</span> <span class="n">pointer</span><span class="o">.</span><span class="n">next</span>
<span class="k">if</span> <span class="n">pointer</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">__tail</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">__tail</span> <span class="o">=</span> <span class="n">prepointer</span>
</code>
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号