本篇文章给大家带来的内容是关于php单链怎么实现?php单链的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
主要更新介绍: 完美整合Discuz!论坛,实现一站式登陆、退出、注册; 同步所有会员资料; 新增购物车功能,商品购买更加方便、快捷; 新增部分快捷菜单,网站访问更加方便; 限制首页商品、店铺标题显示长度; 修正会员后台管理不能更改密码的错误; 完善商品显示页面所有功能链接; 修正后台标签管理部分错误; 修正前台学校列表不按后台顺序显示的错误; 修正搜索功能中学校名称过长导致显示紊乱的现象; 修正
//单个节点
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 {
//在某一节点后添加新节点
$cruntnode = $this->head;
while($cruntnode->next != null ){
if($cruntnode->next->id == $prenodeid){
$node->next = $cruntnode->next;
$cruntnode->next = $node;
break;
}
$cruntnode = $cruntnode->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 sort(){
}
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,'stark');
$linklist->insert(2,'shudong.wang');
$linklist->insert(3,'rdhub.cn');
$linklist->insert(4,'haha4');
$linklist->insert(5,'haha5');
$linklist->insert(6,'haha6');
$linklist->insert(7,'haha7');
$linklist->delete(5);
$linklist->insert(8,'haha8')->insert(9,'haha9')->insert(10,'haha10')->insert(11,'haha11');
var_dump($linklist);










