手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP小教程之实现双向链表
PHP小教程之实现双向链表
摘要:看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。上一次分享了《PHP小教程之实现链表》,...

看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。上一次分享了《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 "<br>不能添加相同的编号";

}

$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 "<br>编号:".$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 "<br>没有找到目标";

}

}

}

$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);

?>

【PHP小教程之实现双向链表】相关文章:

人大复印资料处理程序_补充篇

PHP学习之PHP变量

百度工程师讲PHP函数的实现原理及性能分析(一)

PHP 和 MySQL 基础教程(四)

PHP滚动日志的代码实现

PHP中实现进程间通讯

PHP实现根据银行卡号判断银行

PHP实现文件安全下载

用libtemplate实现静态网页生成

PHP教程:实现的将图片转换为TXT

精品推荐
分类导航