php基础算法二

159 class iteratorTest implements Iterator
160 {/*{{{*/
161     private $arr = [9, 2, 20, 5, 3, 7, 4, 10, 1, 8, 6];
162
163     public function rewind(){
164         reset($this->arr);
165     }
166
167     public function current(){
168         return current($this->arr);
169     }
170
171     public function key(){
172         return key($this->arr);
173     }
174
175     public function next(){
176         return next($this->arr);
177     }
178
179     public function valid(){
180         return (false !== $this->current());
181     }
182 }/*}}}*/
183
184 class LinkNode
185 {/*{{{*/
186     public $data;
187     public $next=null;
188     public function __construct($data)
189     {
190         $this->data = $data;
191     }
192 }/*}}}*/
193
194 class singlyLinkList
195 {/*{{{*/
196     private $header = null;
197     public function __construct()
198     {
199     }
200
201     public function add($node)
202     {
203         if (is_null($this->header))
204         {
205             $this->header = $node;
206         }
207         else
208         {
209             $current = $this->header;

210             while (!is_null($current->next))

211             {
212                 $current = $current->next;
213             }
214             $current->next = $node;
215         }
216     }
217
218     public function reverse()
219     {
220         if (is_null($this->header) || is_null($this->header->next))
221         {
222             return $this;
223         }
224         $pre = $this->header;
225         $current = $this->header->next;
226         $pre->next = null;
227         $next = null;
228         while (!is_null($current))
229         {
230             $next = $current->next;
231             $current->next = $pre;
232             $pre = $current;
233             $current = $next;
234         }
235         $this->header = $pre;
236         return $this;
237     }
238 }/*}}}*/
239
240 class PhpArraySort
241 {/*{{{*/
242     //$arr[] = array('age'=>5, 'sex'=>0, 'name'=>'daxia');
243     //$arr[] = array('age'=>2, 'sex'=>1, 'name'=>'xiaoming');
244     //$arr[] = array('age'=>13, 'sex'=>1, 'name'=>'daheng');
245     public function __construct()
246     {
247         $arr[] = array();
248     }
249
250     public function array2DSort1($arr)
251     {
252         if (empty($arr) || (1 == count($arr)))
253         {
254             return $arr;
255         }
256         $ageArr = array();
257         $sexArr = array();
258         foreach ($arr as $subArr)
259         {

260             $ageArr[] = $subArr['age'];

261             $sexArr[] = $subArr['sex'];
262             $nameArr[] = $subArr['name'];
263         }
264         array_multisort($ageArr, SORT_DESC, $sexArr, SORT_DESC, $arr);
265         return $arr;
266     }
267
268     public function array2DSort2($arr)
269     {
270         if (empty($arr) || (1 == count($arr)))
271         {
272             return $arr;
273         }
274         $ageArr = array();
275         foreach ($arr as $key => $subArr)
276         {
277             $ageArr[$key] = $subArr['age'];
278         }
279         asort($ageArr);
280         reset($ageArr);
281         $newArr = array();
282         foreach ($ageArr as $key => $age)
283         {
284             $newArr[$key] = $arr[$key];
285         }
286         return $newArr;
287     }
288 }/*}}}*/
289
290 class MonkeyQuestion
291 {/*{{{*/
292     public function getMonkeyOut()
293     {
294         $n = 3;
295         $m = 2;
296         $monkeys = range(1, $n);
297         $j = 1;
298         while (count($monkeys)>1)
299         {
300             $head = array_shift($monkeys);
301             if ($j%$m != 0)
302             {
303                 array_push($monkeys, $head);
304             }
305             $j++;
306         }
307         return $monkeys[0];
308     }

309 }/*}}}*/

310 class FileExt
311 {/*{{{*/
312     public function getFileExt($url)
313     {
314         //scheme host path query
315         $pathInfo = parse_Url($url);
316         $baseName = basename($pathInfo['path']);
317         $arr = explode('.', $baseName);
318         return isset($arr[1]) ? $arr[1] : '';
319     }
320 }/*}}}*/
321
322 class FileDir
323 {

324     //todo

          is_dir; open_dir;file=readdir;closedir

325 }
326
327 class GetFileContent
328 {

329     //todo

           fopen  !feof fgets fclose

330 }
331
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值