>  기사  >  백엔드 개발  >  PHP에서 순환 연결 목록 함수의 간단한 구현 예

PHP에서 순환 연결 목록 함수의 간단한 구현 예

*文
*文원래의
2017-12-21 16:16:171522검색

이 글에서는 주로 PHP에서 순환 연결 목록 기능의 간단한 구현을 소개합니다. 순환 연결 목록의 개념과 기능을 간략하게 설명하고, 순환 연결 목록을 사용하는 PHP 정의 및 관련 조작 기술을 예제 형식으로 분석합니다. 도움이 필요한 친구들은 다음 개요를 참조할 수 있습니다.

원형 연결 목록은 연결 저장 구조의 또 다른 형태입니다. 그 특징은 리스트의 마지막 노드의 포인터 필드가 헤드 노드를 가리키며 전체 연결 리스트가 링을 형성한다는 것입니다.

아래와 같이:

PHP에서 순환 연결 목록 함수의 간단한 구현 예


구현 코드:

<?php
class node{
  public $data;
  public $link;
  public function __construct($data=null,$link=null){
    $this->data=$data;
    $this->link=$link;
  }
}
class cycleLinkList{
  public $head;
  public function __construct($data,$link=null){
    $this->head=new node($data,$link);
    $this->head->link=$this->head;
  }
  public function insertLink($data){
    $p=new node($data);
    $q=$this->head->link;
    $r=$this->head;
    if($q==$r)
    {
      $q->link=$p;
      $p->link=$q;
      return;
    }
    while($q!=$this->head){
      $r=$q;$q=$q->link;
    }
    $r->link=$p;
    $p->link=$this->head;
  }
}
$linklist=new cycleLinkList(1);
for($i=2;$i<11;$i++){
   $linklist->insertLink($i);
}
$q=$linklist->head->link;
echo $linklist->head->data;
while($q!=$linklist->head){
  echo $q->data;
  $q=$q->link;
}
echo "<br>--------------------------<br>";
$p=$linklist->head;
$r=$p;
$n=10;
$i=2;
while($n)
{
    while(0!=$i){
    $r=$p;$p=$p->link;
    $i--;
    }
    echo $p->data;
    $r->link=$p->link;
    $tmp=$p;
    $p=$p->link;
    unset($tmp);
    $n--;
    $i=2;
}


실행 결과:

12345678910
--------------------------
36927185104


관련 읽기:

세대를 달성하는 방법 PHP 흐릿한 그림

PHP의 소켓 푸시 기술에 대한 자세한 설명

PHP는 대소문자 변환을 어떻게 수행하나요?

위 내용은 PHP에서 순환 연결 목록 함수의 간단한 구현 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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