pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

php數(shù)據(jù)結(jié)構(gòu)之順序鏈表與鏈?zhǔn)骄€性表示例

這篇文章主要介紹了php數(shù)據(jù)結(jié)構(gòu)之順序鏈表與鏈?zhǔn)骄€性表,結(jié)合實(shí)例形式較為詳細(xì)的分析了php實(shí)現(xiàn)順序鏈表與鏈?zhǔn)骄€性表的各種常用操作技巧,需要的朋友可以參考下

本文實(shí)例講述了php數(shù)據(jù)結(jié)構(gòu)之順序鏈表與鏈?zhǔn)骄€性表。分享給大家供大家參考,具體如下:

鏈表操作

1、     InitList(L):初始化鏈表
2、     DestroyList(L):刪除連接
3、     ClearList(L):清空鏈表
4、     ListEmpty(L):判斷是否為空
5、     ListLength(L):鏈表長(zhǎng)度
6、     getElem(L,i):取出元素
7、     LocateElem(L,e):判斷e是否在鏈表中
8、     PriorElem(L,i):前驅(qū)
9、     NextElem(L,i):后繼
10、   ListInsert(L,i,e):插入元素
11、   ListDelete(L,i,):刪除元素

順序鏈表操作


<?php
class ArrayList{
  private $list;
  private $size;
  //構(gòu)造函數(shù)
  public function __construct(){
   $this->list=array();
   $this->size=0;
  }
  public function initList(){
   $this->list=array();
   $this->size=0;
  }
  //刪除鏈表
  public function destoryList(){
   if(isset($this->list)){
     unset($this->list);
    $this->size=0;
   }
  }
  //清空鏈表
  public function clearList(){
   if(isset($this->list)){
    unset($this->list);
   }
   $this->list=array();
   $this->size=0;
  }
  //判斷鏈表是否為空
  public function emptyList(){
   if(isset($this->list)){
     if($this->size=0)
      return TRUE;
    else
     return FALSE;
   }
  }
  //鏈表長(zhǎng)度
  public function lenghtList(){
   if(isset($this->list)){
    return $this->size;
   }
  }
  //取元素
  public function getElem($i){
   if($i<1||$i>$this->size){
    echo "溢出<br>";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    return $this->list[$i-1];
   }
  }
  //是否在鏈表中
  public function locateElem($e){
   if(isset($this->list)&&is_array($this->list)){
    for($i=0;$i<$this->size;$i++){
      if($this->list[$i]==$e){
       return $i+1;
      }
    }
    return 0;
   }
  }
  //前驅(qū)
  public function priorElem($i){
   if($i<1||$i>$this->size){
    echo "溢出";
    exit();
   }
   if($i==1){
    echo "沒(méi)有前驅(qū)";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    return $this->list[$i-2];
   }
  }
  //后繼
  public function nextElem($i){
   if($i<1||$i>$this->size){
    echo "溢出";
    exit();
   }
   if($i==$this->size){
    echo "沒(méi)有后繼";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    return $this->list[$i];
   }
  }
  //插入元素
  public function insertList($i,$e){
   if($i<1||$i>$this->size+1){
    echo "插入元素位置有誤";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    if($this->size==0){
      $this->list[$this->size]=$e;
      $this->size++;
    }else{
      $this->size++;
      for($j=$this->size-1;$j>=$i;$j--){
       $this->list[$j]=$this->list[$j-1];
      }
      $this->list[$i-1]=$e;
    }
   }
  }
  //刪除元素
  public function deleteLlist($i){
   if($i<1||$i>$this->size){
    echo "刪除元素位置有誤";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    if($i==$this->size){
      unset($this->list[$this->size-1]);
    }else{
      for($j=$i;$j<$this->size;$j++){
       $this->list[$j-1]=$this->list[$j];
      }
      unset($this->list[$this->size-1]);
     }
   $this->size--;
   }
  }
  //遍歷
  public function printList(){
   if(isset($this->list)&&is_array($this->list)){
    foreach ($this->list as $value){
      echo $value." ";
    }
    echo "<br>";
   }
  }
}
?>

鏈?zhǔn)骄€性表


<?php
class LinkList {
  private $head;
  private $size;
  private $list;
  public function __construct(){
   $this->head="";
   $this->size=0;
   $this->list=array();
  }
  public function initList(){
   $this->head="";
   $this->size=0;
   $this->list=array();
  }
  //刪除鏈表
  public function destoryList(){
   if(isset($this->list)&&isset($this->head)){
    unset($this->list);
    unset($this->head);
   }
  }
  //清空鏈表
  public function clearList(){
   if(isset($this->list)){
    unset($this->list);
   }
   $this->list=array();
   $this->size=0;
   $this->head="";
  }
  //判斷鏈表是否為空
  public function emptyList(){
   if(isset($this->list)){
    if($this->size==0)
      returnTRUE;
    else
      returnFALSE;
   }
  }
  //鏈表長(zhǎng)度
  public function lenghtList(){
   if(isset($this->list)){
    return$this->size;
   }
  }
  //取元素
  public function getElem($i){
   if($i<1||$i>$this->size){
    echo "溢出<br>";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    $j=1;
    //頭指針
    $tmp=$this->head;
    while($i>$j){
      if($this->list[$tmp]['next']!=null){
       $tmp=$this->list[$tmp]['next'];
       $j++;
      }
    }
    return  $this->list[$tmp]['data'];
   }
  }
  //是否在鏈表中
  public function locateElem($e){
   if(isset($this->list)&&is_array($this->list)){
    $tmp=$this->head;
    while($this->list[$tmp]['data']!=$e){
      if($this->list[$tmp]['next']!=null){
       $tmp=$this->list[$tmp]['next'];
      }else{
       returnFALSE;
      }
    }
    return TRUE;
   }
  }
  //前驅(qū)
  public function priorElem($i){
   if($i<1||$i>=$this->size){
    echo "溢出";
    exit();
   }
   if($i==1){
    echo "沒(méi)有前驅(qū)";
    exit();
   }
   $tmp=$this->head;
   $j=1;
   while($i>$j+1){
    if($this->list[$tmp]['next']!=null){
      $j++;
      $tmp=$this->list[$tmp]['next'];
    }
   }
   return$this->list[$tmp]['data'];
  }
  //后繼
  public function nextElem($i){
   if($i<1||$i>$this->size){
    echo "溢出";
    exit();
   }
   if($i==$this->size){
    echo "沒(méi)有后繼";
    exit();
   }
   $j=1;
   $tmp=$this->head;
   while($i>=$j){
    if($this->list[$tmp]['next']!=null){
      $j++;
      $tmp=$this->list[$tmp]['next'];
    }
   }
   return$this->list[$tmp]['data'];
  }
  //插入元素:后插法
  public function insertList($i,$e){
   if(isset($this->list)&&is_array($this->list)){
    //空表
    if($this->size==0){
      $this->head=$this->uuid();
      $this->list[$this->head]['data']=$e;
      $this->list[$this->head]['next']=NULL;
      $this->size++;
    }else{
      if($i<1||$i>$this->size){
      echo"插入元素位置有誤";
      exit();
      }
      $j=1;
      $tmp=$this->head;
      while($i>$j){
       if($this->list[$tmp]['next']!=null){
         $j++;
         $tmp=$this->list[$tmp]['next'];
       }
      }
      $find=$tmp;
      $id=$this->uuid();
      if($this->list[$find]['next']==null){
       //尾部
       $this->list[$find]['next']=$id;
       $this->list[$id]['data']=$e;
       $this->list[$id]['next']=null;
       $this->size++;
      }else{
       //中間
       $this->list[$id]['next']=$this->list[$find]['next'];
       $this->list[$find]['next']=$id;
       $this->list[$id]['data']=$e;
       $this->size++;
      }
    }
   }
  }
  //刪除元素
  public function deleteLlist($i){
   if($i<1||$i>$this->size){
    echo "刪除元素位置有誤";
    exit();
   }
   if(isset($this->list)&&is_array($this->list)){
    if($i==1){
      //刪除頭元素
      $this->head=$this->list[$this->head]['next'];
    }else{
      $tmp=$this->head;
      $j=1;
      while($i>$j+1){
       if($this->list[$tmp]['next']!=null){
         $j++;
         $tmp=$this->list[$tmp]['next'];
       }
      }
      //找到刪除元素的前驅(qū)
      $find=$tmp;
      //刪除的元素
      if($this->list[$find]['next']!=null){
       //不是最后一個(gè)元素
       $delete=$this->list[$find]['next'];
       $this->list[$find]['next']=$this->list[$delete]['next'];
      }else{
       $this->list[$tmp]['next']=null;
      }
    }
   }
  }
  public function traverstList(){
   $tmp=$this->head;
   while($this->list[$tmp]['next']!=NULL){
    $this->printList($this->list[$tmp]['data'],TRUE);
    $tmp=$this->list[$tmp]['next'];
   }
   $this->printList($this->list[$tmp]['data'],FALSE);
  }
  public function printList($str,$flag){
   if($flag){
    echo$str."->";
   }else {
    echo$str."<br>";
   }
  }
  //uuid 唯一碼
  public  function uuid($prefix = '') {
  $chars =md5(uniqid(mt_rand(), true));
  $uuid = substr($chars,0,8) . '-';
  $uuid .=substr($chars,8,4) . '-';
  $uuid .=substr($chars,12,4) . '-';
  $uuid .=substr($chars,16,4) . '-';
  $uuid .= substr($chars,20,12);
  return $prefix. $uuid;
  }
}
?>

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

這篇文章主要介紹了PHP實(shí)現(xiàn)的防止跨站和xss攻擊代碼,是一款來(lái)自阿里云的防注入腳本,可實(shí)現(xiàn)針對(duì)注入、XSS攻擊等的過(guò)濾功能,需要的朋友可以參考下
這篇文章主要介紹了php實(shí)現(xiàn)的AES加密類定義與用法,結(jié)合完整實(shí)例形式分析了基于php的AES加密類實(shí)現(xiàn)及使用方法,需要的朋友可以參考下
這篇文章主要介紹了php 判斷IP為有效IP地址的方法,需要的朋友可以參考下
這篇文章主要介紹了PHP設(shè)計(jì)模式之注冊(cè)樹(shù)模式,結(jié)合實(shí)例形式詳細(xì)分析了注冊(cè)樹(shù)模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
這篇文章主要為大家詳細(xì)介紹了PHP微信開(kāi)發(fā)之微信錄音臨時(shí)轉(zhuǎn)永久存儲(chǔ),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
這篇文章主要為大家詳細(xì)介紹了PHP CURL與java http使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 亮点云建站-网站建设制作平台 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 法兰螺母 - 不锈钢螺母制造厂家 - 万千紧固件--螺母街 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 西门子伺服电机维修,西门子电源模块维修,西门子驱动模块维修-上海渠利 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 无缝钢管-聊城无缝钢管-小口径无缝钢管-大口径无缝钢管 - 聊城宽达钢管有限公司 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 东莞喷砂机-喷砂机-喷砂机配件-喷砂器材-喷砂加工-东莞市协帆喷砂机械设备有限公司 | 广州冷却塔维修厂家_冷却塔修理_凉水塔风机电机填料抢修-广东康明节能空调有限公司 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 |