Linked list: is an ordered list , but it is stored dispersedly in the memory. Using linked lists can solve problems like Joseph's problem, sorting problem, search problem, generalized table
One-way linked list, two-way linked list, circular linked list
The bottom layer of PHP is C. When a program is running, the memory is divided into five areas (heap area, stack area, global area, constant area, code area)
Provisions: Basic data types, generally placed in the stack area
Composite data types, such as objects, are placed in the heap area
Define a class Hero
Define member attribute ranking $no
Define member attribute name $name
Define member attribute nickname $nickname
Define member attribute $next, which is a reference pointing to the next Hero object
Define the constructor and pass parameters: $no, $name, $nickname
Create a head, which is just a header and does not put data
Get the $head object, new Hero()
Get the first Hero object $hero, new Hero(1,"Song Jiang","Timely Rain")
Connect two objects, $head->next=$hero
Get the second Hero object $hero2, new Hero(2,"Lu Junyi","Yu Qilin")
Connect two objects, $hero->next=$hero2
Traverse the linked list
Define a function showHeros(), parameter: $head object
Define a temporary variable $cur to store the $head object
while loop, condition $cur->next is not null
Print it
Move the pointer backward, $cur=$cur->next
PHP version:
<?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 version:
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; } } }
The above article briefly discussing the PHP linked list data structure (singly linked list) is all the content shared by the editor. I hope it can give you a reference, and I also hope that everyone will support Bangkejia.