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
<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>
private class Node<T> { public Node<T> next; public T data; public Node(T d,Node<T> n) {data = d; next = n;} }
<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>
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号