Maison >développement back-end >tutoriel php >Exemple simple d'opération de liste chaînée PHP
Cet article présente principalement le fonctionnement de la liste chaînée PHP et analyse les compétences de définition et d'utilisation de la liste chaînée PHP sous la forme d'exemples simples. Il a une certaine valeur de référence. Les amis dans le besoin peuvent se référer à
. Les données en cours d'exécution dans les structures PHP sont essentiellement simulées à l'aide de tableaux, en utilisant simplement une réflexion constante.
Le problème que j'ai rencontré aujourd'hui est de fusionner deux listes chaînées.
Liste chaînée fusionnant les rendus
Description du problème : Une liste chaînée est un modèle de liste chaînée, la longueur de la liste chaînée B est incertain, A,B Les deux listes chaînées sont combinées pour former une liste chaînée C.
Parlons d'idées de programmation : Une liste chaînée est un modèle de liste chaînée, donc une fois l'opération terminée, la seule longueur reste inchangée. La longueur de la liste chaînée B est incertaine. Par conséquent, nous pouvons d'abord juger la liste chaînée B, qui est divisée en trois étapes :
La liste chaînée B est-elle vide ?
La liste chaînée B est-elle plus courte ou égale au Une liste chaînée ?
Liste chaînée B Est-elle plus longue que la liste chaînée A
La programmation consiste à lister le plus de possibilités possible. Saisissez la variable En raison de l'exigence de la question, lorsque la liste chaînée A et la liste chaînée B sont égales, la liste chaînée B sera renvoyée directement, il n'est donc pas nécessaire de considérer ce problème.
$node = array( "nameid"=>"", "shoolid"=>" ", "depid"=>" ", "start"=>" ", "end"=>" " ); /* 现在上面数据,有的数据存在A链表里面,有的存在B链表里面,如果都没有,用A链表的数据节点来代替。 开始第一次完成的时候,想了一个很蛋痛的方式,还用到arra_diff()函数用这个链表作差。后来仔细思考了一下。 */ //$data 表示B链表 //$time 表示A链表 //这里为了节约资源,没开第三条链表,而是在B链表中操作,为什么要选一条不确定长度的链表 //看完你就知道为什么了 if(empty($data)) // { //申请节点 $data = array(); foreach($time as $value) { //将A链表的数据进行需求处理,组成我们需要的节点模式 $array = array("nameid"=>$value["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>""); array_push($data,$array); //将新节点压进栈 } } else if(count($data)<=count($time)) //进行长度对比 { for($i=0;$i<count($time);$i++) //for循环,不建议在for循环继续动态判断,我这里是偷懒了。 { if(empty($data[$i])) { //如果数据节点空,则构建节点 $array = array("nameid"=>$time[$i]["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>""); array_push($data,$array); } } }
L'algorithme ci-dessus est simplement pratiqué, combinant les données d'une liste chaînée avec les données de B.
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
phpMettre en œuvre la fonction de paiement natif WeChat (scanner le paiement par code QR)
phpMettre en œuvre la fonction de paiement en face-à-face Alipay (paiement par code QR)
PHPStrom nouveau projet FTP et explication graphique détaillée du fonctionnement en ligne
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!