PHP程序员玩转算法公开课(第一季)02_单链表在内存中存在形式剖析
2016-03-05 10:52
549 查看
链表——最灵活的数据结构
链表用来解决复杂的问题和算法是很方便的。
内容介绍
1.什么是链表
2.单向链表
3.双向链表
4.环形链表
5.使用环形链表解决约瑟夫问题
链表——什么是链表
链表是有序的列表,但是它在内存中是分散存储的。
链表无处不在,比如在操作系统中,文件和文件之间,文件块和文件块之间,是靠链表链接起来的。
使用链表可以解决类似约瑟夫问题,排序,索引,二叉树,广义表...
链表——单链表的快速入门
使用head头的单向链表实现——水浒英雄排行榜管理
使用php语言来实现,如果是c#/c/c++/java,思路是完全一样的。
现在我们看看链表是怎样的一种数据结构呢?->内存图分析
singleLink.php
[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,当一个程序运行的时候,内存分成五个区[栈区/堆区/全局区/常量区/代码区]
程序一旦运行,东西在这五个区里是怎样分布的,要非常的清楚,否则的话就是一团雾水。
c/c++/java她们的内存分析图一般情况下也是这么画的,因为这是最底层的东西。
链表用来解决复杂的问题和算法是很方便的。
内容介绍
1.什么是链表
2.单向链表
3.双向链表
4.环形链表
5.使用环形链表解决约瑟夫问题
链表——什么是链表
链表是有序的列表,但是它在内存中是分散存储的。
链表无处不在,比如在操作系统中,文件和文件之间,文件块和文件块之间,是靠链表链接起来的。
使用链表可以解决类似约瑟夫问题,排序,索引,二叉树,广义表...
链表——单链表的快速入门
使用head头的单向链表实现——水浒英雄排行榜管理
使用php语言来实现,如果是c#/c/c++/java,思路是完全一样的。
现在我们看看链表是怎样的一种数据结构呢?->内存图分析
singleLink.php
[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,当一个程序运行的时候,内存分成五个区[栈区/堆区/全局区/常量区/代码区]
程序一旦运行,东西在这五个区里是怎样分布的,要非常的清楚,否则的话就是一团雾水。
c/c++/java她们的内存分析图一般情况下也是这么画的,因为这是最底层的东西。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项