php单链表实现
php单链表实现
<?php
//单链表
class Hero{
public $no;
public $name;
public $nickname;
public $next=null; function __construct($no='',$name=''){
$this->no=$no;
$this->name=$name;
} }
function addHero($head,$Hero){
$cur=$head;
$flag=true;
while ($cur->next!=null) {
if($cur->next->no>$Hero->no){
$tmp=$cur->next;
$cur->next=$Hero;
$Hero->next=$tmp;
$flag=false;break;
}else if($cur->next->no==$Hero->no){echo "该位置已有人,不允许占位";$flag=false;break;}
else{ $cur=$cur->next;}
}
if($flag){$cur->next=$Hero;}
}
//增加
function showHero($head){
$cur=$head;
while($cur->next!=null){ echo $cur->next->no.":".$cur->next->name."<br/>";
$cur=$cur->next;
} }
//删除特定编号的
function delHero($head,$no){
$cur=$head;
while($cur->next!=null){
if($cur->next->no==$no)
{if($cur->next->next)$cur->next=$cur->next->next;
else $cur->next=null;
break;
}
$cur=$cur->next;
} }
//查找特定编号的信息
function findHero($head,$no){
$cur=$head;
while($cur->next!=null){
if($cur->next->no==$no){break;}
$cur=$cur->next;
}
echo$cur->next->name; }
//改特定编号的信息
function updateHero($head,$no,$name){
$cur=$head;
while($cur->next!=null){
if($cur->next->no==$no){break;}
$cur=$cur->next;
}
$cur->next->name=$name;
}
$head=new Hero();
$Hero=new Hero(1,"宋江");
addHero($head,$Hero);
$Hero=new Hero(6,"林冲");
addHero($head,$Hero);
$Hero=new Hero(2,"吴用");
addHero($head,$Hero);
$Hero=new Hero(4,"李逵");
addHero($head,$Hero);
showHero($head);
//删除4号
delHero($Hero,4);
//查找6号
findHero($head,6);
// 修改6号
updateHero($Hero,6,"林哥哥");
showHero($head); ?>
php单链表实现的更多相关文章
- 时间复杂度分别为 O(n)和 O(1)的删除单链表结点的方法
有一个单链表,提供了头指针和一个结点指针,设计一个函数,在 O(1)时间内删除该结点指针指向的结点. 众所周知,链表无法随机存储,只能从头到尾去遍历整个链表,遇到目标节点之后删除之,这是最常规的思路和 ...
- 单链表的C++实现(采用模板类)
采用模板类实现的好处是,不用拘泥于特定的数据类型.就像活字印刷术,制定好模板,就可以批量印刷,比手抄要强多少倍! 此处不具体介绍泛型编程,还是着重叙述链表的定义和相关操作. 链表结构定义 定义单链表 ...
- Java实现单链表的各种操作
Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...
- [LeetCode] Linked List Cycle II 单链表中的环之二
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...
- c++单链表基本功能
head_LinkNode.h /*单链表类的头文件*/#include<assert.h>#include"compare.h"typedef int status; ...
- 单链表、循环链表的JS实现
数据结构系列前言: 数据结构作为程序员的基本知识,需要我们每个人牢牢掌握.近期我也展开了对数据结构的二次学习,来弥补当年挖的坑...... 当时上课的时候也就是跟着听课,没有亲自实现任何一种数据结 ...
- C代码实现非循环单链表
C代码实现非循环单链表, 直接上代码. # include <stdio.h> # include <stdlib.h> # include <malloc.h> ...
- 分离的思想结合单链表实现级联组件:CascadeView
本文介绍自己最近做省市级联的类似的级联功能的实现思路,为了尽可能地做到职责分离跟表现与行为分离,这个功能拆分成了2个组件并用到了单链表来实现关键的级联逻辑,下一段有演示效果的gif图.虽然这是个很常见 ...
- 数据结构:单链表结构字符串(python版)添加了三个新功能
#!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...
- 数据结构:单链表结构字符串(python版)改进
此篇文章的replace实现了字符串类的多次匹配,但依然有些不足. 因为python字符串对象为不变对象,所以replace方法并不修改原先的字符串,而是返回修改后的字符串. 而此字符串对象时用单链表 ...
随机推荐
- Binder机制-简单用法(一)
Binder算是android里面比较难懂的部分了,但是非常重要,基本上,当我们深入到进程交互的阶段,Binder都是一个绕不开的槛,所以我也希望帮助大家更浅显地了解到这个知识点.笔者想通过3篇博文简 ...
- 统计mysql数据库中数据表/字段等数量的sql
1.查询一个表中有多少个字段: SELECT COUNT(*) FROM information_schema. COLUMNSWHERE table_schema = '数据库名'AND table ...
- java web 实体类生成
工具下载地址:https://download.csdn.net/download/g342105676/10813246
- sklearn中预测模型的score函数
sklearn.linear_model.LinearRegression.score score(self, X, y, sample_weight=None) Returns the coeffi ...
- scala学习手记14 - 单例对象
java中的单例模式都很熟悉了:简单地说就是一个类只能有一个实例.在scala中创建单例对象非常简单,创建类时使用object关键字替换class即可.因为单例类无法初始化,所以不能向它的主构造函数传 ...
- 一块网卡多个IP实现
////////////////////////////写在前面//////////////////////////////////////////// 需要注意,这里我们是一块网卡多个IP,而并非是 ...
- java-ConcurrentLinkedQueue 简单使用
import java.util.concurrent.ConcurrentLinkedQueue; public class CacheTest { /** * * offer(E e) 将指定元素 ...
- sql server数据库课程设计分析
课题:能源管理收费系统 系统功能的基本要求: (1)用户基本信息的录入:包括用户的单位.部门.姓名.联系电话.住址 : (2)用户水.电.气数据的录入(每个月的数据的录入): (3)水.电.气价格的管 ...
- 【51nod-1046】最大子矩阵和
一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值. 例如:3*3的矩阵: -1 3 -1 2 -1 3 -3 1 2 和最大的子矩阵是: 3 ...
- Fiddler工作原理与代理设置
1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...