ハン・シュンピン_アルゴリズムで遊ぶPHPプログラマーのための公開講座(シーズン1) 02_メモリ内の単連結リストの存在形式の解析_学習ノート_ソースコードイラスト_PPT文書整理
Wenxi Malone:http://blog. csdn.net/wenximalong/
リンク リスト - 最も柔軟なデータ構造
リンク リストは、複雑な問題やアルゴリズムを解決するのに非常に便利です。
内容紹介
1.リンクリストとは
2. 一方向リンクリスト
3. 二重リンクリスト
4. 循環リンクリスト
5. 循環リンクリストを使用してジョセフ問題を解決します
リンク リスト - リンク リストとは
リンク リストは順序付きリストですが、メモリ内に分散して保存されます。
リンク リストはどこにでもあります。たとえば、オペレーティング システムでは、ファイルとファイル、ファイル ブロックとファイル ブロックがリンク リストによってリンクされます。
リンク リストは、Joseph の問題、並べ替え、インデックス付け、バイナリ ツリー、一般化リストなどの問題を解決するために使用できます...
リンク リスト - 単一リンク リストの簡単な紹介
ヘッダの一方向リンクリストを利用した実装 - 水滸伝ヒーローランキング管理
PHP 言語を使用して実装します。c#/c/c++/java の場合も、 考え方はまったく同じです。
では、リンクリストとはどのようなデータ構造なのか見てみましょう。 ->メモリグラフ分析
singleLink.php
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body> <h1>单向链表完成英雄排行管理</h1> <hr/> <a href="#">查询英雄</a> <a href="#">添加英雄</a> <a href="#">删除英雄</a> <a href="#">修改英雄</a> <?php //首先需要基础知识。知道什么是变量,有一些面向对象编程基础。 //知道三大控制语句 if for while //定义英雄类 class Hero{ public $no;//排名 public $name;//真实名字 public $nickname;//外号 public $next;//$next是一个引用,指向另外一个Hero的对象实例。 //构造函数 public function __construct($no='',$name='',$nickname=''){ //赋值 $this->no=$no; $this->name=$name; $this->nickname=$nickname; } } //因为有些同学,对PHP语法有点不熟,我演示一下 //创建一个英雄 $hero=new Hero(1,'宋江','及时雨'); //echo 输出 echo $hero->name; ?> </body> </html>
画像は大きいため、新しいウィンドウで画像を開いて全体を表示してください
PHP の最下層は c です。プログラムが実行されると、メモリは [スタック領域/ヒープ領域/グローバル領域/定数領域/コード領域] の 5 つの領域に分割されます。
プログラムが実行されたら、
これら 5 つの領域にものがどのように分散されているかを明確にする必要があります 。そうしないと、混乱してしまいます。
C/C++/Java のメモリ解析図は通常、このように描かれます。これは、これが最下位レベルのものであるためです。