浅谈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 相关文章推荐
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
浅析php数据类型转换
Jan 09 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
php字符串截取函数用法分析
Nov 25 PHP
php微信支付之APP支付方法
Mar 04 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
许愿墙中用到的函数
2006/10/07 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python之Socket网络编程详解
2016/09/29 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
利用python求相邻数的方法示例
2017/08/18 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
劳资专员岗位职责
2013/12/27 职场文书
高中地理教学反思
2014/01/29 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
旷课检讨书500字
2014/10/14 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书