gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅谈PHP链表数据结构(单链表)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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版:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?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版:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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链表数据结构(单链表)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com