问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP实现:如何在只给定单链表中某个结点的指针的情况下删除该结点

发布网友 发布时间:2022-04-06 06:48

我来回答

2个回答

懂视网 时间:2022-04-06 11:10

php实现链表的方法:

首先定义一个节点类

class Node{
 public $val;
 public $next;
 function __construct($val=null){
 $this->val = $val;
 $this->next = null;
 }
}

链表的实现类

class MyLinkedList {
 public $dummyhead; //定义一个虚拟的头结点
 public $size;
 
 function __construct() {
 $this->dummyhead = new Node(); 
 $this->size = 0;
 }
 
 
 function get($index) {
 if($index < 0 || $index >= $this->size)
  return -1;
 $cur = $this->dummyhead;
 for($i = 0; $i < $index; $i++){
  $cur = $cur->next;
 }
 return $cur->next->val;
 }
 
 function addAtHead($val) {
 $this->addAtIndex(0,$val);
 }
 
 
 function addAtTail($val) {
 $this->addAtIndex($this->size,$val);
 }
 
 function addAtIndex($index, $val) {
 if($index < 0 || $index > $this->size)
  return;
 $cur = $this->dummyhead;
 for($i = 0; $i < $index; $i++){
  $cur = $cur->next;
 }
 $node = new Node($val);
 $node->next = $cur->next;
 $cur->next = $node;
 $this->size++;
 }
 
 function deleteAtIndex($index) {
 if($index < 0 || $index >= $this->size)
  return;
 $cur = $this->dummyhead;
 for($i = 0; $i < $index; $i++){
  $cur = $cur->next;
 }
 $cur->next = $cur->next->next;
 $this->size--;
 }
}

相关学习推荐:PHP编程从入门到精通

热心网友 时间:2022-04-06 08:18

p是要删除的结点,q是p的前一个结点 q->next = p->next;//删除的结点的后一结点的首地址赋值给删除的结点的前一结点的next p->next->prior = q;//删除的结点的后一结点的prior指向删除的结点的前一结点的首地址
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见好多鱼在水里活蹦乱跳 教你如何将让reaver PIN 进度随意更改精确前四位 求个保存PIN进度的方法 ...不上外接键盘,但鼠标一直有用,谁能告诉我怎么回事,先谢了。。_百度... 相机SD卡,卡上图片电脑显示不出来 相机SD卡用读卡器插到电脑上DCIM文件夹不显示照片怎么解决? win10查询错误日志的方法-win10怎么查询错误日志 电脑系统日志文件如何查看电脑里的系统日志 电脑事件日志在哪里看怎样查看电脑使用的日志 win11系统日志在哪里看 win11系统日志怎么看 think_php 怎么做链表操作 PHP在服务器端如何建立链表保存用户信息? php中的echo的双引号为什么要转义 关于PHP中双引号的嵌套 请问php有没有现成的函数,可以给字符串变成转义之后字符串的 PHP有些函数括号内使用单引号有些使用双引号,为什么? PHP中的双引号转义,为什么这个没有使用,这样是对的吗 PHP字符串转义的问题,下边这字符串用什么函数处理了之后才能直接输出? PHP 过滤函数有哪些 在PHP正则表达式中双引号与单引号有什么区别,双引号里哪些需要转义,单引号里又是哪些需要转义 php中单双引号问题 PHP怎么获取文件大小 PHP,接收前台发过来的文件能限定文件大小吗? PHP如何让上传的大文件变小 用PHP做一个邮件系统 不知道怎么下手 接收邮件服务器(POP)怎么写啊? 如何用PHPMailer接收邮件 php发送邮件配置问题 Delphi中怎样通过pop3读取邮件中的内 c++语言pop3协议得到的邮件内容怎么解析 php不支持指针,怎么实现单向链表 链表的实现 如何实现链表循环 实现一个链表操作 怎么实现链表? php如何实现长链接 php如何判断循环链表 PHP判断链表是否有环 定义链表类,要求实现 实现一个链表的类模板,需要进行插入删除等操作,祥见问题补充 PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例 centos6.4 php.ini 位置在哪 yum安装的php的phpize在哪儿 centos php.ini在哪 求用php将email和url转化成小写的正则 PHP怎么删除数据库里的图片路径同时,删除文件夹下对应的图片 openssl_open()在PHP扩展里打开openssl支持可以解决此问题 如何调用父类的构造方法 调用父类的构造方法 PHP怎么在子类用父类的魔术方法