双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问
看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。上一次分享了《PHP小教程之实现链表》,这次来补充说一下双向链表。
复制代码 代码如下:
class Hero
{
public $pre=null;
public $no;
public $name;
public $next=null;
public function __construct($no='',$name='')
{
$this->no=$no;
$this->name=$name;
}
static public function addHero($head,$hero)
{
$cur = $head;
$isExist=false;
//判断目前这个链表是否为空
if($cur->next==null)
{
$cur->next=$hero;
$hero->pre=$cur;
}
else
{
//如果不是空节点,则安排名来添加
//找到添加的位置
while($cur->next!=null)
{
if($cur->next->no > $hero->no)
{
break;
}
else if($cur->next->no == $hero->no)
{
$isExist=true;
echo "
不能添加相同的编号";
}
$cur=$cur->next;
}
if(!$isExist)
{
if($cur->next!=null)
{
$hero->next=$cur->next;
}
$hero->pre=$cur;
if($cur->next!=null)
{
$hero->next->pre=$hero;
}
$cur->next=$hero;
}
}
}
//遍历
static public function showHero($head)
{
$cur=$head;
while($cur->next!=null)
{
echo "
编号:".$cur->next->no."名字:".$cur->next->name;
$cur=$cur->next;
}
}
static public function delHero($head,$herono)
{
$cur=$head;
$isFind=false;
while($cur!=null)
{
if($cur->no==$herono)
{
$isFind=true;
break;
}
//继续找
$cur=$cur->next;
}
if($isFind)
{
if($cur->next!=null)
{
$cur->next_pre=$cur->pre;
}
$cur->pre->next=$cur->next;
}
else
{
echo "
没有找到目标";
}
}
}
$head = new Hero();
$hero1 = new Hero(1,'1111');
$hero3 = new Hero(3,'3333');
$hero2 = new Hero(2,'2222');
Hero::addHero($head,$hero1);
Hero::addHero($head,$hero3);
Hero::addHero($head,$hero2);
Hero::showHero($head);
Hero::delHero($head,2);
Hero::showHero($head);
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
