【php单链实现】在面试中经常会被问到的「 php怎么实现单链”」
实现方案
在php面试中经常会被问到 php怎么实现单链首发地址: https://shudong.wang/10239.html
下面是完整的实现方案,可以参考
//单个节点 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);
相关推荐
zyyjay 2020-11-09
xuebingnan 2020-11-05
samtrue 2020-11-22
stefan0 2020-11-22
yifangs 2020-10-13
songshijiazuaa 2020-09-24
hebiwtc 2020-09-18
天步 2020-09-17
83911535 2020-11-13
whatsyourname 2020-11-13
zhouyuqi 2020-11-10
Noneyes 2020-11-10
mathchao 2020-10-28
王志龙 2020-10-28
wwwsurfphpseocom 2020-10-28
diskingchuan 2020-10-23
savorTheFlavor 2020-10-23