浅谈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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
CI框架给视图添加动态数据
Dec 01 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
php使用APC实现实时上传进度条功能
Oct 26 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
PHP实现合并discuz用户
2015/08/05 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
PHP时间类完整代码实例
2021/02/26 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
python的dataframe和matrix的互换方法
2018/04/11 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
管理站站长岗位职责
2013/11/27 职场文书
英语系毕业生求职信
2014/07/13 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
员工家属慰问信
2015/03/24 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
MongoDB数据库之添删改查
2022/04/26 MongoDB
详解CSS3浏览器兼容
2022/12/24 HTML / CSS