php实现单链表的实例代码


Posted in PHP onMarch 22, 2013
<?php
//链表节点 
class node { 
    public $id; //节点id 
    public $name; //节点名称 
    public $next; //下一节点 
    
    public function __construct($id, $name) { 
        $this->id = $id; 
        $this->name = $name; 
        $this->next = null; 
    } 
}
//单链表 
class singelLinkList { 
    private $header; //链表头节点 
    
    //构造方法 
    public function __construct($id = null, $name = null) { 
        $this->header = new node ( $id, $name, null ); 
    } 
    //获取链表长度 
    public function getLinkLength() { 
        $i = 0; 
        $current = $this->header; 
        while ( $current->next != null ) { 
            $i ++; 
            $current = $current->next; 
        } 
        return $i; 
    } 
    //添加节点数据 
    public function addLink($node) { 
        $current = $this->header; 
        while ( $current->next != null ) { 
            if ($current->next->id > $node->id) { 
                break; 
            } 
            $current = $current->next; 
        } 
        $node->next = $current->next; 
        $current->next = $node; 
    } 
    //删除链表节点 
    public function delLink($id) { 
        $current = $this->header; 
        $flag = false; 
        while ( $current->next != null ) { 
            if ($current->next->id == $id) { 
                $flag = true; 
                break; 
            } 
            $current = $current->next; 
        } 
        if ($flag) { 
            $current->next = $current->next->next; 
        } else { 
            echo "未找到id=" . $id . "的节点!<br>"; 
        } 
    } 
    //获取链表 
    public function getLinkList() { 
        $current = $this->header; 
        if ($current->next == null) { 
            echo ("链表为空!"); 
            return; 
        } 
        while ( $current->next != null ) { 
            echo 'id:' . $current->next->id . '   name:' . $current->next->name . "<br>"; 
            if ($current->next->next == null) { 
                break; 
            } 
            $current = $current->next; 
        } 
    } 
    //获取节点名字 
    public function getLinkNameById($id) { 
        $current = $this->header; 
        if ($current->next == null) { 
            echo "链表为空!"; 
            return; 
        } 
        while ( $current->next != null ) { 
            if ($current->id == $id) { 
                break; 
            } 
            $current = $current->next; 
        } 
        return $current->name; 
    } 
    //更新节点名称 
    public function updateLink($id, $name) { 
        $current = $this->header; 
        if ($current->next == null) { 
            echo "链表为空!"; 
            return; 
        } 
        while ( $current->next != null ) { 
            if ($current->id == $id) { 
                break; 
            } 
            $current = $current->next; 
        } 
        return $current->name = $name; 
    } 
}
$lists = new singelLinkList (); 
$lists->addLink ( new node ( 5, 'eeeeee' ) ); 
$lists->addLink ( new node ( 1, 'aaaaaa' ) ); 
$lists->addLink ( new node ( 6, 'ffffff' ) ); 
$lists->addLink ( new node ( 4, 'dddddd' ) ); 
$lists->addLink ( new node ( 3, 'cccccc' ) ); 
$lists->addLink ( new node ( 2, 'bbbbbb' ) ); 
$lists->getLinkList (); 
echo "<br>-----------删除节点--------------<br>"; 
$lists->delLink ( 5 ); 
$lists->getLinkList ();
echo "<br>-----------更新节点名称--------------<br>"; 
$lists->updateLink ( 3, "222222" ); 
$lists->getLinkList ();
echo "<br>-----------获取节点名称--------------<br>"; 
echo $lists->getLinkNameById ( 5 );
echo "<br>-----------获取链表长度--------------<br>"; 
echo $lists->getLinkLength (); 
?>
PHP 相关文章推荐
?繁体转换的class
Oct 09 PHP
分页详解 从此分页无忧(PHP+mysql)
Nov 23 PHP
PHP版自动生成文章摘要
Jul 23 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
php 判断数组是几维数组
Mar 20 #PHP
php页面消耗内存过大的处理办法
Mar 18 #PHP
ajax取消挂起请求的处理方法
Mar 18 #PHP
smarty 缓存控制前的页面静态化原理
Mar 15 #PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 #PHP
php文本转图片自动换行的方法
Mar 13 #PHP
用Php编写注册后Email激活验证的实例代码
Mar 11 #PHP
You might like
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
PHP JSON 数据解析代码
2010/05/26 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
pytorch 修改预训练model实例
2020/01/18 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
利用python爬取有道词典的方法
2020/12/08 Python
python Zmail模块简介与使用示例
2020/12/19 Python
骆驼官方商城:CAMEL
2016/11/22 全球购物
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
什么是lambda函数
2013/09/17 面试题
资产经营总监岗位职责
2013/12/04 职场文书
节约电力资源的建议书
2014/03/12 职场文书
大学毕业生个人总结
2015/02/28 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android