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

首頁 > 編程 > PHP > 正文

php數據結構之順序鏈表與鏈式線性表的示例

2020-03-22 19:04:14
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php數據結構之順序鏈表與鏈式線性表,結合實例形式較為詳細的分析了php實現順序鏈表與鏈式線性表的各種常用操作技巧,需要的朋友可以參考下

本文實例講述了php數據結構之順序鏈表與鏈式線性表。分享給大家供大家參考,具體如下:

鏈表操作

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):前驅
9、 NextElem(L,i):后繼
10、 ListInsert(L,i,e):插入元素
11、 ListDelete(L,i,):刪除元素

順序鏈表操作

 ?phphtml' target='_blank'>class ArrayList{ private $list; private $size; //構造函數 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; //前驅 public function priorElem($i){ if($i 1||$i $this- size){ echo 溢出  exit(); if($i==1){ echo 沒有前驅  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 $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 ? 

鏈式線性表

 ?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; //前驅 public function priorElem($i){ if($i 1||$i =$this- size){ echo 溢出  exit(); if($i==1){ echo 沒有前驅  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  //找到刪除元素的前驅 $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;?         

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大余县| 永顺县| 理塘县| 安溪县| 崇信县| 枞阳县| 商河县| 友谊县| 潼南县| 彰化市| 靖安县| 洛扎县| 宁南县| 滁州市| 瓦房店市| 靖宇县| 健康| 龙川县| 桃园市| 新龙县| 正宁县| 本溪| 大姚县| 合水县| 揭东县| 刚察县| 密云县| 淮滨县| 安康市| 乐昌市| 盐山县| 虞城县| 九江县| 竹溪县| 莆田市| 芒康县| 新河县| 栖霞市| 齐河县| 辰溪县| 桦川县|