Home >Backend Development >PHP Tutorial >Example code for implementing singly linked list in php_PHP tutorial

Example code for implementing singly linked list in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:12:251065browse

Copy code The code is as follows:

//链表节点
class node {
public $id; //节点id
public $name; //节点名称
public $next; //下一节点

public function __construct($id, $name) {
$this->id = $id;
        $this->name = $name;
        $this->next = null;
    }
}

//单链表
class singelLinkList {
    private $header; //链表头节点
   

    //构造方法
    public function __construct($id = null, $name = null) {
        $this->header = new node ( $id, $name, null );
    }

    //获取链表长度
    public function getLinkLength() {
        $i = 0;
        $current = $this->header;
        while ( $current->next != null ) {
            $i ++;
            $current = $current->next;
        }
        return $i;
    }

    //添加节点数据
    public function addLink($node) {
        $current = $this->header;
        while ( $current->next != null ) {
            if ($current->next->id > $node->id) {
                break;
            }
            $current = $current->next;
        }
        $node->next = $current->next;
        $current->next = $node;
    }

    //删除链表节点
    public function delLink($id) {
        $current = $this->header;
        $flag = false;
        while ( $current->next != null ) {
            if ($current->next->id == $id) {
                $flag = true;
                break;
            }
            $current = $current->next;
        }
        if ($flag) {
            $current->next = $current->next->next;
        } else {
            echo "未找到id=" . $id . "的节点!
($current->next == null) {
              echo ("The linked list is empty!");
                                                                                                                                                                                                                                                                       worse worse worse worse ->next->next == null) {
                                                                                                  
/ /Get the node name
public function getLinkNameById($id) {
$current = $this->header;
if ($current->next == null) {
echo "Linked list For empty! "; Return;
}
While ($ Current- & GT; Next! = Null) {
if ($ Current- & GT; ID == $ ID) {
BREAK; }
$ Current = $ Current- & GT; Next;
}
Return $ Current- & GT; name;
}

// Update node name
public function updateLink($id, $name) {
$current = $this->header;
if ($current->next == null) {
echo "The linked list is empty !";
return;
}
while ( $current->next != null ) {
if ($current->id == $id) {
break ;
                                                                                                                                                                                                                                     
$lists = new singelLinkList ();
$lists->addLink ( new node ( 5, 'eeeeee' ) );
$lists->addLink ( new node ( 1, 'aaaaaa' ) );
$lists->addLink ( new node ( 6, 'ffffff' ) );
$lists->addLink ( new node ( 4, 'dddddd' ) );
$lists ->addLink ( new node ( 3, 'cccccc' ) );
$lists->addLink ( new node ( 2, 'bbbbbb' ) );
$lists->getLinkList ();
echo "
-----------Delete node--------------
";
$lists->delLink (5);
$lists->getLinkList ();

echo "
----------Update node name--------------
";
$lists-> ;updateLink ( 3, "222222" );
$lists->getLinkList ();

echo "
-----------Get node name--------------
";
echo $lists- >getLinkNameById (5);

echo "
-----------Get the length of the linked list--------------
";
echo $lists- >getLinkLength ();
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326722.htmlTechArticleCopy the code code as follows: ?php //Linked list node class node { public $id; //Node id public $ name; //Node name public $next; //Next node public function __construct($id, $name)...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn