国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-05 00:02:04
字體:
供稿:網(wǎng)友

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

鏈表操作

1、     InitList(L):初始化鏈表
2、     DestroyList(L):刪除連接
3、     ClearList(L):清空鏈表
4、     ListEmpty(L):判斷是否為空
5、     ListLength(L):鏈表長度
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,):刪除元素

順序鏈表操作

<?phpclass 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;   }  }  //鏈表長度  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 "沒有前驅(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 "沒有后繼";    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)骄€性表

<?phpclass 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;   }  }  //鏈表長度  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 "沒有前驅(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 "沒有后繼";    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){       //不是最后一個元素       $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;  }}?>

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


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 商都县| 古蔺县| 侯马市| 黄梅县| 新源县| 华池县| 治多县| 潜山县| 云梦县| 东阿县| 迁安市| 淳化县| 秦皇岛市| 特克斯县| 南宫市| 伽师县| 阿瓦提县| 揭西县| 荔浦县| 浙江省| 敖汉旗| 宜州市| 武川县| 会泽县| 保德县| 伊金霍洛旗| 西贡区| 清徐县| 精河县| 石渠县| 渭源县| 古蔺县| 弋阳县| 佛冈县| 家居| 兴安县| 开平市| 平利县| 星座| 广宗县| 巩留县|