PHP implements singly linked list
Jul 06, 2016 pm 01:28 PM<?<span style="color: #000000;">php </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 單鏈表 </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Demo { </span><span style="color: #0000ff;">private</span> <span style="color: #800080;">$id</span><span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$name</span><span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$next</span><span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct (<span style="color: #800080;">$id</span> = '', <span style="color: #800080;">$name</span> = ''<span style="color: #000000;">) { </span><span style="color: #800080;">$this</span>->id = <span style="color: #800080;">$id</span><span style="color: #000000;">; </span><span style="color: #800080;">$this</span>->name = <span style="color: #800080;">$name</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> show (<span style="color: #800080;">$head</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$head</span><span style="color: #000000;">; </span><span style="color: #0000ff;">while</span> (<span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span>->id,'###',<span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span>->name,'<br />'<span style="color: #000000;">; </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">echo</span> '<hr />'<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;">尾插法</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> push (<span style="color: #800080;">$head</span>, <span style="color: #800080;">$node</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$head</span><span style="color: #000000;">; </span><span style="color: #0000ff;">while</span> (<span style="color: #0000ff;">NULL</span> != <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span> = <span style="color: #800080;">$node</span><span style="color: #000000;">; </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$head</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> insert(<span style="color: #800080;">$head</span>, <span style="color: #800080;">$node</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$head</span><span style="color: #000000;">; </span><span style="color: #0000ff;">while</span> (<span style="color: #0000ff;">NULL</span> != <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span>->id > <span style="color: #800080;">$node</span>-><span style="color: #000000;">id) { </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; } </span><span style="color: #800080;">$node</span>-><span style="color: #008080;">next</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; </span><span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span> = <span style="color: #800080;">$node</span><span style="color: #000000;">; </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$head</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> edit(<span style="color: #800080;">$head</span>, <span style="color: #800080;">$node</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$head</span><span style="color: #000000;">; </span><span style="color: #0000ff;">while</span> (<span style="color: #0000ff;">NULL</span> != <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span>->id == <span style="color: #800080;">$node</span>-><span style="color: #000000;">id) { </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span>->name = <span style="color: #800080;">$node</span>-><span style="color: #000000;">name; </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$head</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">static</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> pop (<span style="color: #800080;">$head</span>, <span style="color: #800080;">$node</span><span style="color: #000000;">) { </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$head</span><span style="color: #000000;">; </span><span style="color: #0000ff;">while</span> (<span style="color: #0000ff;">NULL</span> != <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span> == <span style="color: #800080;">$node</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span> = <span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; } </span><span style="color: #800080;">$cur</span>-><span style="color: #008080;">next</span> = <span style="color: #800080;">$node</span>-><span style="color: #008080;">next</span><span style="color: #000000;">; </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$head</span><span style="color: #000000;">; } } </span><span style="color: #800080;">$team</span> = <span style="color: #0000ff;">new</span><span style="color: #000000;"> Demo(); </span><span style="color: #800080;">$node1</span> = <span style="color: #0000ff;">new</span> Demo(1, '唐三藏'<span style="color: #000000;">); Demo</span>::push(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node1</span><span style="color: #000000;">); </span><span style="color: #800080;">$node1</span>->name = '唐僧'<span style="color: #000000;">; Demo</span>::show(<span style="color: #800080;">$team</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> Demo::show($team);</span> <span style="color: #800080;">$node2</span> = <span style="color: #0000ff;">new</span> Demo(2, '孫悟空'<span style="color: #000000;">); Demo</span>::insert(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node2</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> Demo::show($team);</span> <span style="color: #800080;">$node3</span> = <span style="color: #0000ff;">new</span> Demo(5, '白龍馬'<span style="color: #000000;">); Demo</span>::push(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node3</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> Demo::show($team);</span> <span style="color: #800080;">$node4</span> = <span style="color: #0000ff;">new</span> Demo(3, '豬八戒'<span style="color: #000000;">); Demo</span>::insert(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node4</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> Demo::show($team);</span> <span style="color: #800080;">$node5</span> = <span style="color: #0000ff;">new</span> Demo(4, '沙和尚'<span style="color: #000000;">); Demo</span>::insert(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node5</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;"> Demo::show($team);</span> <span style="color: #800080;">$node4</span>->name = '豬悟能';<span style="color: #008000;">//</span><span style="color: #008000;">php對(duì)象傳引用,所以Demo::edit沒有必要 // unset($node4); // $node4 = new Demo(3, '豬悟能'); // Demo::edit($team, $node4);</span> Demo::pop(<span style="color: #800080;">$team</span>, <span style="color: #800080;">$node1</span><span style="color: #000000;">); Demo</span>::show(<span style="color: #800080;">$team</span>);
?
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article
Grass Wonder Build Guide | Uma Musume Pretty Derby
1 months ago
By Jack chen
Roblox: 99 Nights In The Forest - All Badges And How To Unlock Them
4 weeks ago
By DDD
Uma Musume Pretty Derby Banner Schedule (July 2025)
1 months ago
By Jack chen
RimWorld Odyssey Temperature Guide for Ships and Gravtech
3 weeks ago
By Jack chen
Windows Security is blank or not showing options
1 months ago
By 下次還敢

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)