ホームページ  >  記事  >  バックエンド開発  >  PHPリンクリスト操作の簡単な例

PHPリンクリスト操作の簡単な例

墨辰丷
墨辰丷オリジナル
2018-06-01 09:17:311015ブラウズ

この記事では主に PHP リンク リストの操作を紹介し、簡単な例の形で PHP リンク リストの定義と使用スキルを分析します。必要な方は参考にしてください。

データ構造を実行するため。 PHP では、基本的に配列シミュレーションを使用します。これは、常に考え続けることだけです。

今日私が遭遇した問題は、2 つのリンクされたリストを結合することです。

レンダリングをマージするリンクリスト

問題の説明: A リンクリストはテンプレートリンクリストであり、B リンクリストの長さは不確かで、A と B リンクリストは結合されて C リンクリストを形成します。

プログラミングのアイデアについて話しましょう: リンク リストはテンプレートのリンク リストであるため、操作が完了した後は長さのみが変更されません。 B リンク リストの長さは不明です。したがって、最初に B リンク リストを 3 つのステップに分けて判断できます:

B リンク リストは空かどうか
B リンク リストは A リンク リストより短いか等しいか
B リンク リストは A リンク リストより長いかlist

プログラミングとは、できるだけ多くの可能性をリストすることです。変数を取得します。質問の要件により、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 のデータを組み合わせて単純に実行されます。

要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。関連する推奨事項:

PhpWechatネイティブ支払いを実現(QRコード支払い)機能FTPプロジェクトとオンライン 詳細な操作写真とテキスト

以上がPHPリンクリスト操作の簡単な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。