溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP鏈表的數(shù)據(jù)結構

發(fā)布時間:2021-09-03 21:51:35 來源:億速云 閱讀:116 作者:chen 欄目:開發(fā)技術

本篇內(nèi)容主要講解“PHP鏈表的數(shù)據(jù)結構”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP鏈表的數(shù)據(jù)結構”吧!

鏈表:是一個有序的列表,但是它在內(nèi)存中是分散存儲的,使用鏈表可以解決類似約瑟夫問題,排序問題,搜索問題,廣義表

單向鏈表,雙向鏈表,環(huán)形鏈表

PHP的底層是C,當一個程序運行時,內(nèi)存分成五個區(qū)(堆區(qū),棧區(qū),全局區(qū),常量區(qū),代碼區(qū))

規(guī)定:基本數(shù)據(jù)類型,一般放在棧區(qū)

復合數(shù)據(jù)類型,比如對象,放在堆區(qū)


定義一個類Hero

定義成員屬性排名 $no

定義成員屬性姓名 $name

定義成員屬性昵稱 $nickname

定義成員屬性 $next,是一個引用,指向下一個Hero對象

定義構造函數(shù),傳遞參數(shù):$no,$name,$nickname


創(chuàng)建一個頭head,該head只是一個頭,不放入數(shù)據(jù)

獲取$head對象,new Hero()

獲取第一個Hero對象$hero,new Hero(1,”宋江”,”及時雨”)

連接兩個對象,$head->next=$hero

獲取第二個Hero對象$hero2,new Hero(2,”盧俊義”,”玉麒麟”)

連接兩個對象,$hero->next=$hero2


遍歷鏈表

定義一個函數(shù)showHeros(),參數(shù):$head對象

定義一個臨時變量$cur來存儲 $head對象

while循環(huán),條件$cur->next不為null

打印一下

指針后移,$cur=$cur->next

PHP版:

<?php
/**
* 英雄類
*/
class Hero{
  public $no;
  public $name;
  public $nickname;
  public $next=null;
  public function __construct($no='',$name='',$nickname=''){
    $this->no=$no;
    $this->name=$name;
    $this->nickname=$nickname;
  }
}
class LinkListDemo{
  public static function main(){
    $head=new Hero();
    $hero1=new Hero(1,"宋江","及時雨");
    $head->next=$hero1;
    $hero2=new Hero(2,"盧俊義","玉麒麟");
    $hero1->next=$hero2;
    LinkListDemo::showHeros($head);
  }
  /**
  * 展示英雄
  */
  public static function showHeros($head){
    $cur=$head;
    while($cur->next!=null){
      echo "姓名:".$cur->next->name."<br/>";
      $cur=$cur->next;
    }
  }

}

LinkListDemo::main();

java版:

class Hero{
    public int no;
    public String name;
    public String nickname;
    public Hero next=null;
    public Hero(){
      
    }
    public Hero(int no,String name,String nickname) {
      this.no=no;
      this.name=name;
      this.nickname=nickname;
    }

  }
public class LinkListDemo {
  /**
   * @param args
   */
  public static void main(String[] args) {
    Hero head=new Hero();
    
    Hero hero1=new Hero(1, "宋江", "及時雨");
    head.next=hero1;
    Hero hero2=new Hero(2, "盧俊義", "玉麒麟");
    hero1.next=hero2;
    showHeros(head);
  }
  /**
   * 展示英雄
   * @param head
   */
  public static void showHeros(Hero head){
    Hero cur=head;
    while(cur.next!=null){
      System.out.println("姓名:"+cur.next.name);
      cur=cur.next;
    }
  }
}

到此,相信大家對“PHP鏈表的數(shù)據(jù)結構”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

php
AI