この記事では、主に PHP リンク リストの操作を紹介し、簡単な例の形で PHP リンク リストの定義と使用スキルを分析します。必要な友人は参考にしてください。 ##この記事の例では、PHP リンク リストの操作について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
PHP でのデータ構造の実行は、基本的に配列を使用してシミュレートされますが、常に考え続ける必要があります。
今日私が遭遇した問題は、2 つのリンクされたリストをマージすることです。
リンク リストのマージ レンダリング
問題の説明:A リンク リストはテンプレート リンク リストであり、B リンク リストの長さは不確実、A、B 2 つのリンク リストを結合して C リンク リストを形成します。
プログラミングのアイデアについて話しましょう:リンク リストはテンプレートのリンク リストであるため、操作が完了した後は長さのみが変更されません。 B リンク リストの長さは不明です。したがって、最初に B リンク リストを 3 つのステップで判断できます:
B リンク リストは空ですか?B リンク リストは A リンク リストより短いか等しいですか? B リンク リストは A リンク リストより長いですか?
プログラミングとは、できるだけ多くの可能性をリストすることです。変数を取得します。質問の要件により、A リンク リストと B リンク リストが等しい場合は、B リンク リストが直接返されるため、この問題を考慮する必要はありません。
$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); } } }
上記のアルゴリズムは、A リンク リストのデータと B のデータを組み合わせて単純に実行されます。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
PHP でのマルチプレイヤー モジュール開発の原則についてPHP をプログラムで実装してコンテンツを追加する方法ファイル内のメソッド#
以上がPHP でのリンク リスト操作についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。