浅谈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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
php 无限分类的树类代码
Dec 03 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php结合ACCESS的跨库查询功能
Jun 12 PHP
深入php内核之php in array
Nov 10 PHP
Symfony2 session用法实例分析
Feb 04 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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邮件类
2007/01/03 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php数组去重实例及分析
2013/11/26 PHP
php命名空间学习详解
2014/02/27 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
bootstrap table单元格新增行并编辑
2017/05/19 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
python3去掉string中的标点符号方法
2019/01/22 Python
python文字转语音的实例代码分析
2019/11/12 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
用python实现名片管理系统
2020/06/18 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
化妆品活动策划方案
2014/05/23 职场文书
思品教学工作总结
2015/08/10 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
PHP中->和=>的意思
2021/03/31 PHP
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
Javascript之datagrid查询详解
2021/09/15 Javascript
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技