当前位置: 移动技术网 > IT编程>开发语言>PHP > 浅谈PHP链表数据结构(单链表)

浅谈PHP链表数据结构(单链表)

2017年12月12日  | 移动技术网IT编程  | 我要评论

锵锵三人行20120926,天机勿语txt下载,神力油

链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表

单向链表,双向链表,环形链表

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链表数据结构(单链表)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网