zoukankan      html  css  js  c++  java
  • PHP数据结构练习笔记--线性表

    1.类中变量直接调用和$this->调用不同

    2.清空数组array方法:

      A unset() 释放资源,这个array变量就没有了

      B $arr=array() 重新赋值,将原有的变量赋值给一个新的空数组

    线性表类--最终代码

      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 "&nbsp;&nbsp;&nbsp;长度:".$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 "&nbsp;&nbsp;&nbsp;空";
     65             return false;
     66         }
     67         else{
     68             echo "&nbsp;&nbsp;&nbsp;非空";
     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 ?>
  • 相关阅读:
    信息安全系统设计第一次实验报告
    信息安全系统设计第二次&第四次实验报告
    信息安全系统设计基础第十一周20135334赵阳林
    信息安全系统设计基础第6周学习总结-------20135334赵阳林
    信息安全系统设计基础第五周学习总结------20135334赵阳林
    信息安全系统设计基础第四周学习总结------20135334赵阳林
    信息安全系统设计基础第三周学习总结 ---20135334 赵阳林
    信息安全系统设计基础第二周学习总结
    tcp编程:聊天室中的私聊
    tcp编程:聊天室
  • 原文地址:https://www.cnblogs.com/phpfreshman/p/3350614.html
Copyright © 2011-2022 走看看