浅谈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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
写出高质量的PHP程序
Feb 04 PHP
初品cakephp 入门基础
Feb 16 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
linux使用crontab实现PHP执行计划定时任务
May 10 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
php数组去除空值函数分享
Feb 02 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
php + WebUploader实现图片批量上传功能
May 06 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临时文件的安全性分析
2014/07/04 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP文件操作详解
2016/12/30 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
javascript遍历控件实例详细解析
2014/01/10 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
django站点管理详解
2017/12/12 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
python 制作本地应用搜索工具
2021/02/27 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
生物技术专业毕业生求职信范文
2013/12/14 职场文书
检察官就职演讲稿
2014/01/13 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
置业顾问岗位职责
2015/02/09 职场文书
销售开票员岗位职责
2015/04/15 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
Go中的条件语句Switch示例详解
2021/08/23 Golang
Python使用openpyxl模块处理Excel文件
2022/06/05 Python