浅谈PHP链表数据结构(单链表)


Posted in PHP onJune 08, 2016

链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表

单向链表,双向链表,环形链表

PHP的底层是C,当一个程序运行时,内存分成五个区(堆区,栈区,全局区,常量区,代码区)

规定:基本数据类型,一般放在栈区

复合数据类型,比如对象,放在堆区

定义一个类Hero

定义成员属性排名 $no

定义成员属性姓名 $name

定义成员属性昵称 $nickname

定义成员属性 $next,是一个引用,指向下一个Hero对象

定义构造函数,传递参数:$no,$name,$nickname

创建一个头head,该head只是一个头,不放入数据

获取$head对象,new Hero()

获取第一个Hero对象$hero,new Hero(1,”宋江”,”及时雨”)

连接两个对象,$head->next=$hero

获取第二个Hero对象$hero2,new Hero(2,”卢俊义”,”玉麒麟”)

连接两个对象,$hero->next=$hero2

遍历链表

定义一个函数showHeros(),参数:$head对象

定义一个临时变量$cur来存储 $head对象

while循环,条件$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链表数据结构(单链表)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
删除数组元素实用的PHP数组函数
Aug 18 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
php两种无限分类方法实例
Apr 21 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
微信支付之JSAPI公众号支付详解
May 15 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
php解析非标准json、非规范json的方式实例
May 10 PHP
PHP Yaf框架的简单安装使用教程(推荐)
Jun 08 #PHP
WordPress分页伪静态加html后缀
Jun 08 #PHP
php 流程控制switch的简单实例
Jun 07 #PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 #PHP
PHP session 会话处理函数
Jun 06 #PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 #PHP
PHP编写的图片验证码类文件分享
Jun 06 #PHP
You might like
详细介绍PHP应用提速面面观
2006/10/09 PHP
在IIS上安装PHP4.0正式版
2006/10/09 PHP
Wordpress php 分页代码
2009/10/21 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
PHP 文件上传限制问题
2019/09/01 PHP
使用正则替换变量
2007/05/05 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python用户管理系统
2018/03/13 Python
Python实现DDos攻击实例详解
2019/02/02 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
英语商务邀请函范文
2014/01/16 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
宣传普通话标语
2014/06/27 职场文书
创先争优标语
2014/06/27 职场文书
十佳青年事迹材料
2014/08/21 职场文书
开场白怎么写
2015/06/01 职场文书
nginx 添加http_stub_status_module模块
2022/05/25 Servers
nginx之内存池的实现
2022/06/28 Servers