php链表实现,php实现单链表

class node{

//初始化变量,包括存储的内容和下一个数据的指针

public $id = 0;

public $data = '';

public $next = null;

//构造函数,设置存储内容的数据

public function __construct($id,$nodedata){

$this->id = $id;

$this->data = $nodedata;

}

}

class singleLink{

public $head = '';

public $size = 0;

public function insert($id,$value,$prenodeid = 0){

$node = new node($id,$value);

//如果是空链表,直接添加

if($this->size == 0){

$this->head = $node;

}elseif($prenodeid == 0){

//如果不是空链表,且并没有指定在某一个节点前添加,则在当前节点前添加

$node->next = $this->head;

$this->head = $node;

}else{

//在某一个节点后添加新节点

$currentnode = $this->head;

while($currentnode->next != null) {

if ($currentnode->next->id == $prenodeid) {

$node->next = $currentnode->next;

$currentnode->next = $node;

break;

}

$currentnode = $currentnode->next;

}

}

$this->size++;

return $this;

}

public function edit($id,$value){

$flag = false;

$current = $this->head;

while(@$current->id != null){

if($current->id == $id){

$current->data = $value;

$flag = true;

break;

}

$current = $current->next;

}

return $flag;

}

public function get($id=0){

$current = $this->head;

while(@$current->id != null){

if($id != 0 && $current->id == $id){

$node = $current;

break;

}else{

$node[] = array($current->id,$current->data);

}

$current = $current->next;

}

return $node;

}

public function delete($id){

$flag = false;

$current = $this->head;

while(@$current->id != null){

if($current->next->id == $id){

$current->next = $current->next->next;

$this->size--;

$flag = true;

break;

}

$current = $current->next;

}

return $flag;

}

}

$linklist = new singleLink();

$linklist->insert(1,'hello1');

$linklist->insert(2,'hello2');

$linklist->insert(3,'hello3');

$linklist->insert(4,'hello4');

$linklist->insert(5,'hello5');

$linklist->insert(6,'hello6',2);

$linklist->insert(7,'hello7');

$linklist->delete(5);

$linklist->insert(8,'hello8')->insert(9,'hello9')->insert(10,'hello10');

echo "

";

print_r($linklist);

print_r($linklist->get());

分类:

程序积累

/

浏览量:  639

2018-9-19 9:19 Wednesday

昵称

邮件地址 (选填)

个人主页 (选填)

评论内容

发表评论

send

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值