>백엔드 개발 >PHP 튜토리얼 >PHP의 연결 목록 작업 정보

PHP의 연결 목록 작업 정보

不言
不言원래의
2018-06-19 10:13:531574검색

이 글은 주로 PHP 링크드 리스트의 동작을 소개하고, PHP 링크드 리스트의 정의와 사용법을 간단한 예제로 분석합니다. 도움이 필요한 친구들이 참고할 수 있습니다. 이 기사에서는 PHP 연결 목록의 작동을 설명합니다. 참고용으로 공유합니다. 세부 사항은 다음과 같습니다.

PHP에서 데이터 구조를 실행하는 것은 기본적으로 배열을 사용하여 시뮬레이션됩니다. 단지 끊임없는 사고를 사용하는 것뿐입니다.

오늘 제가 겪은 문제는 두 개의 연결된 목록을 병합하는 것입니다.

연결된 목록 병합 렌더링

문제 설명:

A 연결 목록은 템플릿 연결 목록이고, B 연결 목록의 길이는 불확실하며, A와 B 연결 목록이 결합되어 C 연결 목록을 형성합니다.

프로그래밍 아이디어에 대해 이야기해 보겠습니다.

연결된 목록은 템플릿 연결 목록이므로 작업이 완료된 후에 길이만 변경되지 않습니다. B 연결 리스트의 길이는 불확실합니다. 그러므로 우리는 우선 B 연결리스트를 세 단계로 나누어 판단할 수 있다:

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 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

PHP의 멀티 플레이어 모듈 개발 원칙에 대하여


PHP에서 txt 파일에 콘텐츠를 추가하는 방법을 프로그래밍 방식으로 구현하는 방법


위 내용은 PHP의 연결 목록 작업 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.