Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man eine einzelne Kette in PHP? PHP-Single-Chain-Implementierungscode

Wie implementiert man eine einzelne Kette in PHP? PHP-Single-Chain-Implementierungscode

不言
不言nach vorne
2018-12-30 09:11:313690Durchsuche

Der Inhalt dieses Artikels handelt davon, wie man eine einzelne Kette in PHP implementiert. Der Implementierungscode der PHP-Einzelkette hat einen gewissen Referenzwert. Freunde in Not können darauf verweisen.

//单个节点
class node {
    //初始化变量,包括存储的内容 和 下一个数据的指针
    public $id = 0;
    public $data = '';
    public $next = null;

    //构造函数,设置存储内容的数据
    public function __construct($id,$nodedata){
        $this->id = $id;
        $this->data = $nodedata;
    }
}
class singleLink {
    public $head = '';
    public $size = 0;
    public function insert($id,$value,$prenodeid = 0){
        $node = new node($id,$value);
        //空链表,直接添加
        if ($this->size == 0){
            $this->head = $node;
        } elseif ($prenodeid == 0) {
            //如果不是空链表,且并没有指定在某一个节点前添加
            //则在当前节点前添加
            $node->next = $this->head;
            $this->head = $node;
        } else {
            //在某一节点后添加新节点
            $cruntnode = $this->head;
            while($cruntnode->next != null ){
                if($cruntnode->next->id == $prenodeid){
                    $node->next = $cruntnode->next;
                    $cruntnode->next = $node;
                    break;
                }
                $cruntnode = $cruntnode->next;
            }
        }
        $this->size++;
        return $this;
    }

    public function edit($id,$value){
        $flag = false;
        $current = $this->head;
        while(@$current->id !=null){
            if($current->id == $id){
                $current->data = $value;
                $flag = true; 
                break;
            } 
            $current = $current->next;
        }
        return $flag;
    }

    public function get($id=0){
        $current = $this->head;
        while(@$current->id !=null){
            if($id !=0 && $current->id==$id){
                $node = $current;
                break;
            } else {
                $node[] = array($current->id,$current->data);
            }
            $current = $current->next;
        }
        return $node;
    }

    public function sort(){
        
    }

    public function delete($id){
        $flag = false;
        $current = $this->head;
        while(@$current->id !=null){
            if($current->next->id == $id){
                $current->next = $current->next->next;
                $this->size--;
                $flag = true; 
                break;
            } 
            $current = $current->next;
        }
        return $flag;
    }

}

$linklist = new singleLink();
$linklist->insert(1,'stark');
$linklist->insert(2,'shudong.wang');
$linklist->insert(3,'rdhub.cn');
$linklist->insert(4,'haha4');
$linklist->insert(5,'haha5');
$linklist->insert(6,'haha6');
$linklist->insert(7,'haha7');

$linklist->delete(5);
$linklist->insert(8,'haha8')->insert(9,'haha9')->insert(10,'haha10')->insert(11,'haha11');
var_dump($linklist);

Das obige ist der detaillierte Inhalt vonWie implementiert man eine einzelne Kette in PHP? PHP-Single-Chain-Implementierungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

In Verbindung stehende Artikel

Mehr sehen