php实现单链表,php实现单链
<?<span>php </span><span>/*</span><span>* * 单链表 </span><span>*/</span> <span>class</span><span> Demo { </span><span>private</span> <span>$id</span><span>; </span><span>public</span> <span>$name</span><span>; </span><span>public</span> <span>$next</span><span>; </span><span>public</span> <span>function</span> __construct (<span>$id</span> = '', <span>$name</span> = ''<span>) { </span><span>$this</span>->id = <span>$id</span><span>; </span><span>$this</span>->name = <span>$name</span><span>; } </span><span>static</span> <span>public</span> <span>function</span> show (<span>$head</span><span>) { </span><span>$cur</span> = <span>$head</span><span>; </span><span>while</span> (<span>$cur</span>-><span>next</span><span>) { </span><span>echo</span> <span>$cur</span>-><span>next</span>->id,'###',<span>$cur</span>-><span>next</span>->name,'<br />'<span>; </span><span>$cur</span> = <span>$cur</span>-><span>next</span><span>; } </span><span>echo</span> '<hr />'<span>; } </span><span>//</span><span>尾插法</span> <span>static</span> <span>public</span> <span>function</span> push (<span>$head</span>, <span>$node</span><span>) { </span><span>$cur</span> = <span>$head</span><span>; </span><span>while</span> (<span>NULL</span> != <span>$cur</span>-><span>next</span><span>) { </span><span>$cur</span> = <span>$cur</span>-><span>next</span><span>; } </span><span>$cur</span>-><span>next</span> = <span>$node</span><span>; </span><span>return</span> <span>$head</span><span>; } </span><span>static</span> <span>public</span> <span>function</span> insert(<span>$head</span>, <span>$node</span><span>) { </span><span>$cur</span> = <span>$head</span><span>; </span><span>while</span> (<span>NULL</span> != <span>$cur</span>-><span>next</span><span>) { </span><span>if</span> (<span>$cur</span>-><span>next</span>->id > <span>$node</span>-><span>id) { </span><span>break</span><span>; } </span><span>$cur</span> = <span>$cur</span>-><span>next</span><span>; } </span><span>$node</span>-><span>next</span> = <span>$cur</span>-><span>next</span><span>; </span><span>$cur</span>-><span>next</span> = <span>$node</span><span>; </span><span>return</span> <span>$head</span><span>; } </span><span>static</span> <span>public</span> <span>function</span> edit(<span>$head</span>, <span>$node</span><span>) { </span><span>$cur</span> = <span>$head</span><span>; </span><span>while</span> (<span>NULL</span> != <span>$cur</span>-><span>next</span><span>) { </span><span>if</span> (<span>$cur</span>-><span>next</span>->id == <span>$node</span>-><span>id) { </span><span>break</span><span>; } </span><span>$cur</span> = <span>$cur</span>-><span>next</span><span>; } </span><span>$cur</span>-><span>next</span>->name = <span>$node</span>-><span>name; </span><span>return</span> <span>$head</span><span>; } </span><span>static</span> <span>public</span> <span>function</span> pop (<span>$head</span>, <span>$node</span><span>) { </span><span>$cur</span> = <span>$head</span><span>; </span><span>while</span> (<span>NULL</span> != <span>$cur</span>-><span>next</span><span>) { </span><span>if</span> (<span>$cur</span>-><span>next</span> == <span>$node</span><span>) { </span><span>break</span><span>; } </span><span>$cur</span> = <span>$cur</span>-><span>next</span><span>; } </span><span>$cur</span>-><span>next</span> = <span>$node</span>-><span>next</span><span>; </span><span>return</span> <span>$head</span><span>; } } </span><span>$team</span> = <span>new</span><span> Demo(); </span><span>$node1</span> = <span>new</span> Demo(1, '唐三藏'<span>); Demo</span>::push(<span>$team</span>, <span>$node1</span><span>); </span><span>$node1</span>->name = '唐僧'<span>; Demo</span>::show(<span>$team</span><span>); </span><span>//</span><span> Demo::show($team);</span> <span>$node2</span> = <span>new</span> Demo(2, '孙悟空'<span>); Demo</span>::insert(<span>$team</span>, <span>$node2</span><span>); </span><span>//</span><span> Demo::show($team);</span> <span>$node3</span> = <span>new</span> Demo(5, '白龙马'<span>); Demo</span>::push(<span>$team</span>, <span>$node3</span><span>); </span><span>//</span><span> Demo::show($team);</span> <span>$node4</span> = <span>new</span> Demo(3, '猪八戒'<span>); Demo</span>::insert(<span>$team</span>, <span>$node4</span><span>); </span><span>//</span><span> Demo::show($team);</span> <span>$node5</span> = <span>new</span> Demo(4, '沙和尚'<span>); Demo</span>::insert(<span>$team</span>, <span>$node5</span><span>); </span><span>//</span><span> Demo::show($team);</span> <span>$node4</span>->name = '猪悟能';<span>//</span><span>php对象传引用,所以Demo::edit没有必要 // unset($node4); // $node4 = new Demo(3, '猪悟能'); // Demo::edit($team, $node4);</span> Demo::pop(<span>$team</span>, <span>$node1</span><span>); Demo</span>::show(<span>$team</span>);

给定一个单链表和正整数N作为输入。目标是使用递归找到给定列表中从末尾算起的第N个节点。如果输入列表有节点a→b→c→d→e→f并且N为4,那么倒数第4个节点将是c。我们将首先遍历直到列表中的最后一个节点以及从递归(回溯)增量计数返回时。当count等于N时,则返回指向当前节点的指针作为结果。让我们看看此的各种输入输出场景-输入-List:-1→5→7→12→2→96→33N=3输出−倒数第N个节点为:2解释−第三个节点是2。输入−列表:-12→53→8→19→20→96→33N=8输出-节点不存

数组和链表的算法时间复杂度比较:访问数组O(1),链表O(n);插入数组O(1),链表O(1)/O(n);删除数组O(1),链表O(n);搜索数组O(n),链表O(n)。

数字的链表表示是这样提供的:链表的所有节点都被视为数字的一位数字。节点存储数字,使得链表的第一个元素保存数字的最高有效位,链表的最后一个元素保存数字的最低有效位。例如,数字202345在链表中表示为(2->0->2->3->4->5)。要向这个表示数字的链表添加1,我们必须检查列表中最低有效位的值。如果小于9就可以了,否则代码将更改下一个数字,依此类推。现在让我们看一个示例来了解如何做到这一点,1999表示为(1->9->9->9)并添加1应该将其

PHPSPL数据结构库概述PHPSPL(标准php库)数据结构库包含一组类和接口,用于存储和操作各种数据结构。这些数据结构包括数组、链表、栈、队列和集合,每个数据结构都提供了一组特定的方法和属性,用于操纵数据。数组在PHP中,数组是存储一系列元素的有序集合。SPL数组类提供了对原生的PHP数组进行加强的功能,包括排序、过滤和映射。以下是使用SPL数组类的一个示例:useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

链表是一种数据结构,采用一系列带有数据和指针的节点组织元素,特别适合处理大型数据集和频繁的插入/删除操作。它的基本组成部分包括节点(数据和指向下一个节点的指针)和头节点(指向链表中第一个节点)。常见链表操作包括:添加(尾部插入)、删除(特定值)和遍历。

链表(LinkedList)是一种常见的数据结构,它由一系列结点(Node)组成,每一个结点包含两个关键属性:数据域(Data)和指针域(Next)。其中,数据域用于存储实际数据,指针域则指向下一个结点。通过这种方式,链表以一种灵活的方式存储数据,适用于许多不同的应用场景中。在Go语言中,链表结构也得到了良好的支持。Go的内置标准库中提供了cont

在Python中,链表是一种线性数据结构,它由一系列节点组成,每个节点包含一个值和对链表中下一个节点的引用。在本文中,我们将讨论如何在Python中将元素添加到链表的第一个和最后一个位置。LinkedListinPython链表是一种引用数据结构,用于存储一组元素。它在某种程度上类似于数组,但是在数组中,数据存储在连续的内存位置中,而在链表中,数据不受此条件限制。这意味着数据不是按顺序存储,而是以随机的方式存储在内存中。Thisraisesonequestionthatis,howwecanac

实现链表的方法:1、定义了一个Node结构体来表示链表的节点,每个节点包含一个数据项和一个指向下一个节点的指钁;2、定义了一个LinkedList结构体来表示链表本身,其中包含一个指向链表头节点的指针;3、实现了两个方法,append用于在链表末尾插入节点,printList用于打印链表的元素;4、通过这种方式,可以使用Go语言的结构体和指针来实现链表的基本功能。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版
시각적 웹 개발 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.
