浅谈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 相关文章推荐
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
php ios推送(代码)
Jul 01 PHP
php curl选项列表(超详细)
Jul 01 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
Zend Framework入门知识点小结
Mar 19 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
Laravel学习教程之View模块详解
Sep 18 PHP
简单实现php上传文件功能
Sep 21 PHP
php微信开发之谷歌测距
Jun 14 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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中使用curl_init函数的说明
2010/11/02 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
python使用marshal模块序列化实例
2014/09/25 Python
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python3中的bytes和str类型详解
2019/05/02 Python
PyQt5固定窗口大小的方法
2019/06/18 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
优秀毕业生自荐信范文
2014/01/01 职场文书
自主招生自荐信指南
2014/02/04 职场文书
大学生求职信范文
2014/05/24 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
委托书如何写
2014/08/30 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
同学聚会通知短信
2015/04/20 职场文书
追悼会家属答谢词
2015/09/29 职场文书
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android