1.類中變量直接調用和$this->調用不一樣php
2.清空數組array方法:數組
A unset() 釋放資源,這個array變量就沒有了函數
B $arr=array() 從新賦值,將原有的變量賦值給一個新的空數組this
線性表類--最終代碼spa
1 <?php 2 //線性表類 3 class MyList{ 4 5 //變量:數組、長度 6 private $arr; 7 private $length; 8 9 //構造函數 10 function __construct() 11 { 12 $this->arr=array(); 13 $this->length=0; 14 echo "初始化:"; 15 //echo $arr; 16 } 17 18 //析構函數 19 function __destruct() 20 { 21 unset($this->arr); 22 echo "釋放資源"; 23 } 24 25 //在指定位置插入元素(第二個參數爲空時,默認在表最後插入) 26 function ListInsert($data,$poi='-1') 27 { 28 if($poi=='-1') 29 { 30 array_push($this->arr,$data); 31 } 32 else if($poi>0) 33 { 34 array_splice($this->arr,$poi-1,0,$data); 35 } 36 } 37 38 //輸出線性表 39 function ListTraverse() 40 { 41 print_r($this->arr); 42 } 43 44 //輸出線性表長度 45 function ListLength() 46 { 47 $this->length=count($this->arr); 48 echo " 長度:".$this->length; 49 } 50 51 //清空線性表 52 function ListClear() 53 { 54 echo "清空表:"; 55 unset($this->arr); 56 $this->arr=array(); 57 } 58 59 //判斷線性表是否爲空 60 function ListEmpty() 61 { 62 if($this->length==0) 63 { 64 echo " 空"; 65 return false; 66 } 67 else{ 68 echo " 非空"; 69 return true; 70 } 71 } 72 73 //獲取線性表指定位置的數據 74 function GetElem($poi) 75 { 76 if($poi>$this->length||$poi<=0) 77 { 78 return false; 79 } 80 else{ 81 return $this->arr[$poi-1]; 82 } 83 84 } 85 86 //定位第一個與指定數據相等的元素位置(即下表+1) 87 function LocateElem($data) 88 { 89 if(in_array($data,$this->arr)){ 90 for($i=0;$i<$this->length;$i++) 91 { 92 if($this->arr[$i]==$data) 93 { 94 return $i; 95 break; 96 } 97 else{ 98 continue; 99 } 100 } 101 } 102 else{ 103 return -1; 104 } 105 } 106 107 //返回指定數據的前驅 108 function PriorElem($cur) 109 { 110 if($this->LocateElem($cur)==0) 111 { 112 return false; 113 } 114 else if($this->LocateElem($cur)>0) 115 { 116 $location=$this->LocateElem($cur); 117 return $this->arr[$location-1]; 118 } 119 else if($this->LocateElem($cur)==-1) 120 { 121 return -1; 122 } 123 } 124 125 //返回指定數據的後繼 126 function NextElem($cur) 127 { 128 if($this->LocateElem($cur)==($this->length-1)) 129 { 130 return false; 131 } 132 else if($this->LocateElem($cur)>0) 133 { 134 $location=$this->LocateElem($cur); 135 return $this->arr[$location+1]; 136 } 137 else if($this->LocateElem($cur)==-1) 138 { 139 return -1; 140 } 141 } 142 143 function ListDelete($poi) 144 { 145 if($poi<1||$poi>$this->length) 146 { 147 return false; 148 } 149 else{ 150 $res=$this->arr[$poi-1]; 151 unset($this->arr[$poi-1]); 152 return $res; 153 } 154 } 155 } 156 157 ?>