Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert die umgekehrte Reihenfolge der verknüpften Liste

PHP implementiert die umgekehrte Reihenfolge der verknüpften Liste

不言
不言Original
2018-04-19 15:19:411574Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Implementierung der umgekehrten Reihenfolge verknüpfter Listen. Jetzt kann ich ihn mit allen teilen, die ihn benötigen

<?php
    class Node {
        public $str;        public $next;        function __construct ($str) {
            $this->str = $str;
        }
    }    //创建链表头
    function createList () {
        $head = new Node(null);        return $head;
    }    //向链表$head中插入节点并赋值
    function insertNode ($str, &$head) {
        $node = new Node($str);        $node->next = &$head->next;        $head->next = &$node;
    }    //取出链表的第一个节点,相当于出队
    function outQueue (&$head) {
        $tmp = $head->next;        $head->next = $head->next->next;        $tmp->next = null;        return $tmp;
    }    //将链表$head进行逆序
    function reverse (&$head) {
        $reversed = createList(null);        while (null != $head->next) {
            insertNode(outQueue($head), $reversed);
        }        return $reversed;
    }    $head = createList();
    insertNode(&#39;hello&#39;, $head);
    insertNode(&#39;world&#39;, $head);
    insertNode(&#39;99999999999999&#39;, $head);
    insertNode(&#39;888888888888888&#39;, $head);
    insertNode(&#39;7777777777777&#39;, $head);
    insertNode(&#39;66666666666666&#39;, $head);
    insertNode(&#39;55555555555&#39;, $head);
    insertNode(&#39;444444444444&#39;, $head);
    insertNode(&#39;333333333333&#39;, $head);
    insertNode(&#39;222222222222222&#39;, $head);
    insertNode(&#39;111111111111&#39;, $head);
    insertNode(&#39;000000000000000&#39;, $head);
    print_r($head);    $reversed = reverse($head);    echo "<hr />";
    print_r($reversed);    //上面的方法没有在原链表上操作,不过他创建了一个新链表,
    //虽然逻辑实现显得简单,但是太不专业
    //下面贴出更加专业的逆序代码
    function reverse2 (&$head) {
    $q = $head->next->next;    $head->next->next = null;    while (null != $q) {        $p = $q;        $q = $p->next;        $p->next = $head->next;        $head->next = $p;
    }
    reverse2($head);    echo "<hr />";
    print_r($head);
} ?>


Ausgabeergebnis:
Verknüpfte Liste vor umgekehrter Reihenfolge:
Node Object ( [str] => [next] => Node Object ( [str] => 000000000000000 [next ] => Node Object ( [str] => 111111111111 [next] => Node Object ( [str] => 222222222222222 [next] => Node Object ( [str] => 333333333333 [next] => Node Object ( [ str] => ] => 444444444444 [next] => Node Object ( [str] => 55555555555 [next] => Node Object ( [str] => 66666666666666 [next] => > 7777777777777 [next] => Node Object ( [str] => 888888888888888 [next] => Node Object ( [str] => 99999999999999 [next] => Node Object ( [str] => world [next ] => Node Object ( [str] => hello [next] => ) ) ) ) ) ) ) ) ) ) )

Umgekehrte verknüpfte Liste:
Node Object ( [ str] => [next] => Node Object ( [str] => hallo [next] => ) [next] => Node Object ( [str] = > Node Object ( [str] => world [next] => ) [next] => Node Object ( [str] => 99999999999999 [next] ] => ; ) [next] => Node Object ( [str] => 888888888888888 [next] => ) [next] => Node Object ( [str] = > Node Object ( [str] => 7777777777777 [next] => ) [next] => Node Object ( [str] => 66666666666666 [next] => ) [next ] => Knotenobjekt ( [str] => Knotenobjekt ( [str] => 55555555555 [next] => ) [next] => Knotenobjekt ( [str] => Knotenobjekt ( [str ] => 444444444444 [next] => ) [next] => Node Object ( [str] => 333333333333 [next] => Knotenobjekt ( [str] => Knotenobjekt ( [str] => 222222222222222 [next] => ) [next] => Knotenobjekt ( [str] => Knotenobjekt ( [str] => 111111111111 [next] => ) [next] => Node Object ( [str] => 000000000000000 [next] => ) [next] => ) ) ) ) ) ) ) ) ) ) ) ) )

Verwandte Empfehlungen:

PHP verwenden, um eine einfach verknüpfte Liste zu implementieren

Anleitung Implementieren Sie es in PHP. Doppelt verknüpfte Liste und Sortierung


Das obige ist der detaillierte Inhalt vonPHP implementiert die umgekehrte Reihenfolge der verknüpften Liste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-Download-FunktionNächster Artikel:PHP-Download-Funktion