菜单

[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现

2018年11月18日 - Php

链表获取元素
1.声称结点p指向链表第一只结点,j初始化1起来
2.j<i,p指向下一结点,因为此时p是指为的p的next,因此无欲相当
3.设到终极了,p还呢null,就是没有找到

#include <stdio.h><stdlib.h> node* next;
} Node, ** createLinklist( i = ==== (PNode)malloc((Node));
     (!-->next = (i = ; i < length; i++= (PNode)malloc((Node));
         (!-->data = i*->next = (!pHeader->
            pHeader->next =->next ==* search(PNode pHeader, = pHeader-> i = (p && (i <= p->++ (p && (i == k)) 
 insert(PNode pHeader, PNode pNew, = (  ==== search(pHeader, k-
        pNew->next = p->->next =   deleteNode(PNode pHeader, = ( === pHeader->= search(pHeader, k- (p && p->
        PNode temp = p->->next = temp->  = pHeader->, p->= p->=(NULL !=== pH->, p-> main(= NULL;
    PNode pNew === createLinklist(= search(pHeader, , result->= (PNode)malloc( (!-->data = ->next = 

栽元素
1.插入入元素与搜索类似,找到位置后
2.生变成新的结点s, s->next=p->next p->next=s;

 

除去元素
1.去元素,找到位置后
2.绕了一下,q=p->next p->next=q->next;

http://www.bkjia.com/Cyy/440870.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/440870.htmlTechArticle\#include stdio.h stdlib.h node* next; } Node,
* * createLinklist( i = = = = = (PNode)malloc( (Node)); (! – -next =
(i = ; i length; i++ = (PNode)malloc( (Node)); (! – -data = i*
-n…

 

<?php
class Node{
        public $data;
        public $next;
}
//创建一个链表
$linkList=new Node();
$linkList->next=null;
$temp=$linkList;
for($i=1;$i<=10;$i++){
        $node=new Node();
        $node->data="aaa{$i}";
        $node->next=null;
        $temp->next=$node;
        $temp=$node;
}


//获取元素
function getEle($linkList,$i,&$e){
        $p=$linkList->next;
        //寻找结点标准语句
        $j=1;
        while($p && $j<$i){
                $p=$p->next;
                ++$j;
        }   
        if(!$p || $j>$i){
                return false;
        }   
        $e=$p->data;
        return true;
}

//插入元素
function listInsert(&$linkList,$i,$e){
        $p=$linkList;
        $j=1;
        while($p && $j<$i){
                $p=$p->next;
                ++$j;
        }   
        if(!$p || $j>$i){
                return false;
        }   
        $s=new Node();
        $s->data=$e;
        //插入元素标准语句
        $s->next=$p->next;
        $p->next=$s;
        return true;
}
//删除元素
function listDelete(&$linkList,$i,&$e){
        $p=$linkList;
        $j=1;
        //注意这里的判断$p->next为真,主要是后面要把$p->next指向$p->next->next
        while($p->next && $j<$i){
                $p=$p->next;
                ++$j;
        }
        if(!$p->next || $j>$i){
                return false;
        }
        $q=$p->next;//这个才是当前元素
        $e=$q->data;
        $p->next=$q->next;
        return true;
}
$e="";
//获取元素
getEle($linkList,5,$e);
var_dump($e);
//插入元素
listInsert($linkList,5,"taoshihan");
//删除元素
listDelete($linkList,1,$e);
var_dump($e);
var_dump($linkList);

  

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图