浅谈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 相关文章推荐
用PHP+MySql编写聊天室
Oct 09 PHP
php&amp;mysql 日期操作小记
Feb 27 PHP
ThinkPHP之getField详解
Jun 20 PHP
标准PHP的AES加密算法类
Mar 12 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 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
第十三节 对象串行化 [13]
2006/10/09 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php自动获取关键字的方法
2015/01/06 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
详解Vue2 添加对scss的支持
2019/01/02 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
办护照工作证明
2014/10/01 职场文书
2014年科研工作总结
2014/12/03 职场文书
三方合作意向书范本
2015/05/09 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript