php小教程之实现链表
2014-10-08来源:易贤网

看了很久数据结构但是没有怎么用过,在网上看到了关于php的数据结构,学习了一下,与大家一起分享一下。

代码如下:

class hero

{

public $no;//排名

public $name;//名字

public $next=null;//$next是一个引用,指向另外一个hero的对象实例

public function __construct($no='',$name='')

{

$this->no=$no;

$this->name=$name;

}

static public function showlist($head)

{

$cur = $head;

while($cur->next!=null)

{

echo 排名:.$cur->next->no.,名字:.$cur->next->name.<br>;

$cur = $cur->next;

}

}

//普通插入

static public function addhero($head,$hero)

{

$cur = $head;

while($cur->next!=null)

{

$cur = $cur->next;

}

$cur->next=$hero;

}

//有序的链表的插入

static public function addherosorted($head,$hero)

{

$cur = $head;

$addno = $hero->no;

while($cur->next->no <= $addno)

{

$cur = $cur->next;

}

/*$tep = new hero();

$tep = $cur->next;

$cur->next = $hero;

$hero->next =$tep;*/

$hero->next=$cur->next;

$cur->next=$hero;

}

static public function deletehero($head,$no)

{

$cur = $head;

while($cur->next->no != $no && $cur->next!= null)

{

$cur = $cur->next;

}

if($cur->next->no != null)

{

$cur->next = $cur->next->next;

echo 删除成功<br>;

}

else

{

echo 没有找到<br>;

}

}

static public function updatehero($head,$hero)

{

$cur = $head;

while($cur->next->no != $hero->no && $cur->next!= null)

{

$cur = $cur->next;

}

if($cur->next->no != null)

{

$hero->next = $cur->next->next;

$cur->next = $hero;

echo 更改成功<br>;

}

else

{

echo 没有找到<br>;

}

}

}

//创建head头

$head = new hero();

//第一个

$hero = new hero(1,'111');

//连接

$head->next = $hero;

//第二个

$hero2 = new hero(3,'333');

//连接

hero::addhero($head,$hero2);

$hero3 = new hero(2,'222');

hero::addherosorted($head,$hero3);

//显示

hero::showlist($head);

//删除

hero::deletehero($head,4);

//显示

hero::showlist($head);

//更改

$hero4=new hero(2,'xxx');

hero::updatehero($head,$hero4);

//显示

hero::showlist($head);

有序的插入的话需要遍历一遍链表,链表的一些知识就不介绍了哈。这里主要分享一下代码。

更多信息请查看IT技术专栏

2026公务员·事业单位培训课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
推荐信息