首页 > 编程 > PHP > 正文

PHP实现复制复杂链表的代码

2020-03-22 16:38:36
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于PHP实现复制复杂链表的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

复杂链表的复制:
1.在旧链表中每个结点的后面复制出一个结点,隔代
2.把旧链表的随机指向部分,复制到新添加的结点上
3.把新结点从旧链表中拆分出来成新链表

linklist=headwhile linklist!=null node=new Node() node- next=linklist- next linklist- next=node linklist=node- nextlinklist=headwhile listlink!=null node=listlink- next listlink- next- random=linklist- random!=null ? listlink- random- next : null listlink=node- nexttmp=linklist- nextlinklist- next=tmp- nextlinklist=tmp
 ?phphtml' target='_blank'>class Node{ public $data; public $random; public $next; public function __construct($data= ){ $this- data=$data;//构造一个复杂链表$linkList=new Node();$linkList- next=null;$temp=$linkList;$node1=new Node( 111 $temp- next=$node1;$temp=$node1;$node2=new Node( 222 $temp- next=$node2;$temp=$node2;$node3=new Node( 333 $node3- random=$node2; //node3又指向了node2$temp- next=$node3;$temp=$node3;
$node=new Node($temp- data. clone $node- next=$temp- next;//新结点的next指向当前结点的next $temp- next=$node;//当前结点的next指向新结点 $temp=$node- next;//跳两级 跳过新复制的这个结点 //第二步 $temp=$linkList; while($temp!=null){ $node=$temp- next; //当前结点的下一级random指向 当前结点random的下一级 $temp- next- random=$temp- random!=null ? $temp- random- next : null; $temp=$node- next; //第三步 $newList=$linkList- next;//从第二个结点开始要 $temp=$newList; while($temp- next!=null){ $node=$temp- next;//获取当前结点的next $temp- next=$node- next;//当前结点的next指向 下一级的next , 这样就消掉了下一个 $temp=$node;//当前结点后移 return $newList;}
object(Node)#1 (3) { [ data ]= string(0)  [ random ]= NULL [ next ]= object(Node)#2 (3) { [ data ]= string(3) 111  [ random ]= NULL [ next ]= object(Node)#3 (3) { [ data ]= string(3) 222  [ random ]= NULL [ next ]= object(Node)#4 (3) { [ data ]= string(3) 333  [ random ]=  *RECURSION* [ next ]= NULL}object(Node)#5 (3) { [ data ]= string(8) 111clone  [ random ]= NULL [ next ]= object(Node)#6 (3) { [ data ]= string(8) 222clone  [ random ]= NULL [ next ]= object(Node)#7 (3) { [ data ]= string(8) 333clone  [ random ]=  *RECURSION* [ next ]= NULL}

相关推荐:

Java实现复杂链表的复制代码分享

php实现单链表的实例代码

以上就是PHP实现复制复杂链表的代码的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表