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

?>

复制代码

双向链表的插入操作示意图:

if($cur->next!=null)

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

$hero->pre=$cur;

if($cur->next!=null)

$hero->next->pre=$hero;

$cur->next=$hero;

QQ截图20140706152241

删除操作示意图:

if($cur->next!=null)

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

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

QQ截图20140706152857

相关报道:

1)从python官网上下载windows下的安装包python-2.7.3.msi并安装 2)打开IDLE(python GUI),输入 import sys sys.version 如果你的python是32位,将出现如下字符: 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] 这个时候LIBSVM的p 更多

现实中,经常要做的一项任务,是在文本中检索某种模式。所谓模式,就是满足一定规则的字符串的总称,例如只由 更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值