淺談PHP鏈表數(shù)據(jù)結(jié)構(gòu)(單鏈表)
鏈表:是一個(gè)有序的列表,但是它在內(nèi)存中是分散存儲(chǔ)的,使用鏈表可以解決類似約瑟夫問題,排序問題,搜索問題,廣義表
單向鏈表,雙向鏈表,環(huán)形鏈表
PHP的底層是C,當(dāng)一個(gè)程序運(yùn)行時(shí),內(nèi)存分成五個(gè)區(qū)(堆區(qū),棧區(qū),全局區(qū),常量區(qū),代碼區(qū))
規(guī)定:基本數(shù)據(jù)類型,一般放在棧區(qū)
復(fù)合數(shù)據(jù)類型,比如對(duì)象,放在堆區(qū)
定義一個(gè)類Hero
定義成員屬性排名 $no
定義成員屬性姓名 $name
定義成員屬性昵稱 $nickname
定義成員屬性 $next,是一個(gè)引用,指向下一個(gè)Hero對(duì)象
定義構(gòu)造函數(shù),傳遞參數(shù):$no,$name,$nickname
創(chuàng)建一個(gè)頭head,該head只是一個(gè)頭,不放入數(shù)據(jù)
獲取$head對(duì)象,new Hero()
獲取第一個(gè)Hero對(duì)象$hero,new Hero(1,”宋江”,”及時(shí)雨”)
連接兩個(gè)對(duì)象,$head->next=$hero
獲取第二個(gè)Hero對(duì)象$hero2,new Hero(2,”盧俊義”,”玉麒麟”)
連接兩個(gè)對(duì)象,$hero->next=$hero2
遍歷鏈表
定義一個(gè)函數(shù)showHeros(),參數(shù):$head對(duì)象
定義一個(gè)臨時(shí)變量$cur來存儲(chǔ) $head對(duì)象
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,"宋江","及時(shí)雨");
$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, "宋江", "及時(shí)雨");
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ù)結(jié)構(gòu)(單鏈表)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- php數(shù)據(jù)結(jié)構(gòu)之順序鏈表與鏈?zhǔn)骄€性表示例
- php線性表順序存儲(chǔ)實(shí)現(xiàn)代碼(增刪查改)
- php線性表的入棧與出棧實(shí)例分析
- PHP+MySQL統(tǒng)計(jì)該庫中每個(gè)表的記錄數(shù)并按遞減順序排列的方法
- php實(shí)現(xiàn)單鏈表的實(shí)例代碼
- PHP小教程之實(shí)現(xiàn)鏈表
- PHP小教程之實(shí)現(xiàn)雙向鏈表
- PHP實(shí)現(xiàn)單鏈表翻轉(zhuǎn)操作示例
- PHP鏈表操作簡單示例
- PHP環(huán)形鏈表實(shí)現(xiàn)方法示例
- php實(shí)現(xiàn)的順序線性表示例
相關(guān)文章
TP5框架實(shí)現(xiàn)的數(shù)據(jù)庫備份功能示例
這篇文章主要介紹了TP5框架實(shí)現(xiàn)的數(shù)據(jù)庫備份功能,結(jié)合實(shí)例形式分析了TP5數(shù)據(jù)庫備份功能相關(guān)原理及實(shí)現(xiàn)方法,需要的朋友可以參考下2020-04-04
php導(dǎo)出word文檔與excel電子表格的簡單示例代碼
本篇文章主要是對(duì)php導(dǎo)出word文檔與excel電子表格的簡單示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-03-03
destoon之URL Rewrite(偽靜態(tài))設(shè)置方法詳解
這篇文章主要介紹了destoon的URL Rewrite(偽靜態(tài))設(shè)置方法,需要的朋友可以參考下2014-06-06
阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法
這篇文章主要介紹了阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法,需要的朋友可以參考下2017-07-07
thinkPHP顯示不出驗(yàn)證碼的原因與解決方法分析
這篇文章主要介紹了thinkPHP顯示不出驗(yàn)證碼的原因與解決方法,結(jié)合具體實(shí)例形式分析了thinkPHP關(guān)于驗(yàn)證碼顯示的相關(guān)配置方法與注意事項(xiàng),需要的朋友可以參考下2017-05-05
codeigniter自帶數(shù)據(jù)庫類使用方法說明
在 CodeIgniter 中,使用數(shù)據(jù)庫是非常頻繁的事情。你可以使用框架自帶的數(shù)據(jù)庫類,就能便捷地進(jìn)行數(shù)據(jù)庫操作2014-03-03
PHP產(chǎn)生不重復(fù)隨機(jī)數(shù)的5個(gè)方法總結(jié)
這篇文章主要介紹了PHP產(chǎn)生不重復(fù)隨機(jī)數(shù)的5個(gè)方法總結(jié),PHP隨機(jī)數(shù)經(jīng)常在項(xiàng)目中使用,本文總結(jié)了網(wǎng)絡(luò)上的和自己項(xiàng)目中用到的隨機(jī)數(shù)生成方法,需要的朋友可以參考下2014-11-11

