PHP 단일 링크 구현 코드

단일 체인 테이블 은 체인 액세스 의 데이터 구조 로 주소 가 임의의 저장 장치 로 선형 테이블 의 데이터 요 소 를 저장 합 니 다.
단일 체인 테이블 안내
링크 의 데 이 터 는 노드 로 표 시 됩 니 다.모든 노드 의 구성:요소(데이터 요소 의 이미지)+포인터(후계 요소 의 저장 위 치 를 표시 합 니 다)요 소 는 데 이 터 를 저장 하 는 저장 장치 이 고 지침 은 모든 노드 를 연결 하 는 주소 데이터 입 니 다.
핵심 코드 는 다음 과 같다.

<?php
/**
*    
*/ 
class Demo
{
private $id;
public $name;
public $next;
public function __construct ($id = '', $name = '')
{
$this->id = $id;
$this->name = $name;
}
static public function show ($head)
{
$cur = $head;
while ($cur->next) {
echo $cur->next->id,'###',$cur->next->name,'<br />';
$cur = $cur->next;
}
echo '<hr />';
}
//   
static public function push ($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
$cur = $cur->next;
}
$cur->next = $node;
return $head;
}
static public function insert($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next->id > $node->id) {
break;
}
$cur = $cur->next;
}
$node->next = $cur->next;
$cur->next = $node;
return $head;
}
static public function edit($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next->id == $node->id) {
break;
}
$cur = $cur->next;
}
$cur->next->name = $node->name;
return $head; 
}
static public function pop ($head, $node)
{
$cur = $head;
while (NULL != $cur->next) {
if ($cur->next == $node) {
break;
}
$cur = $cur->next;
}
$cur->next = $node->next;
return $head; 
}
}
$team = new Demo();
$node1 = new Demo(1, '   ');
Demo::push($team, $node1);
$node1->name = '  ';
Demo::show($team);
// Demo::show($team);
$node2 = new Demo(2, '   ');
Demo::insert($team, $node2);
// Demo::show($team);
$node3 = new Demo(5, '   ');
Demo::push($team, $node3);
// Demo::show($team);
$node4 = new Demo(3, '   ');
Demo::insert($team, $node4);
// Demo::show($team);
$node5 = new Demo(4, '   ');
Demo::insert($team, $node5);
// Demo::show($team);
$node4->name = '   ';//php     ,  Demo::edit    
// unset($node4);
// $node4 = new Demo(3, '   ');
// Demo::edit($team, $node4);
Demo::pop($team, $node1);
Demo::show($team);
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 PHP 싱글 체인 시트 의 실현 코드 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기