当前位置: 首页 > 后端技术 > PHP

【PHP单链实现】面试中经常被问到“如何在php中实现单链”

时间:2023-03-30 02:11:41 PHP

实现方案在php面试中,我们经常被问到php是如何实现单链起始地址的:https://shudong.wang/10239.html以下是完整的实现方案,可以参考//单节点类node{//初始化变量,包括存储的内容和指向下一个数据的指针public$id=0;公共$数据='';公共$下一个=空;//构造函数,设置存储内容的数据publicfunction__construct($id,$nodedata){$this->id=$id;$this->data=$nodedata;}}classsingleLink{public$head='';公共$大小=0;publicfunctioninsert($id,$value,$prenodeid=0){$node=newnode($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;休息;$cruntnode=$cruntnode->下一个;$this->size++;返回$这个;}publicfunctionedit($id,$value){$flag=false;$current=$this->head;while(@$current->id!=null){if($current->id==$id){$current->data=$value;$标志=真;休息;}$current=$current->next;}返回$标志;}publicfunctionget($id=0){$current=$this->head;while(@$current->id!=null){if($id!=0&&$current->id==$id){$node=$current;休息;}else{$node[]=array($current->id,$current->data);}$current=$current->next;}返回$节点;}publicfunctionsort(){}publicfunctiondelete($id){$flag=false;$current=$this->head;while(@$current->id!=null){if($current->next->id==$id){$current->next=$current->next->next;$这个->大小--;$标志=真;休息;}$current=$current->next;}返回$标志;}}$linklist=newsingleLink();$linklist->insert(1,'stark');$linklist->insert(2,'书洞.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);