当前位置:首页 > PHP教程 > php高级应用 > 列表

【PHP学习】线性表的顺序存储结构原理分析以及代码示例

发布:smiling 来源: PHP粉丝网  添加日期:2020-04-05 17:44:07 浏览: 评论:0 

本篇文章主要讲述的是线性表的顺序存储结构原理分析以及代码示例,具有一定的参考价值,感兴趣的朋友可以了解一下。

1.PHP中的数组实际上是有序映射,可以当成数组,列表,散列表,字典,集合,栈,队列,不是固定的长度

2.数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了

3.想要函数的一个参数总是通过引用传递,可以在函数定义中该参数的前面加上符号 &

4.PHP 的引用是别名,就是两个不同的变量名字指向相同的内容;“默认情况下对象是通过引用传递的”。但其实这不是完全正确的,当对象作为参数传递,作为结果返回,或者赋值给另外一个变量,另外一个变量跟原来的不是引用的关系,只是他们都保存着同一个标识符的拷贝

  1. <?php 
  2.  
  3. class Sqlist{ 
  4.  
  5.         public $data=array(); 
  6.  
  7.         public $length=0; 
  8.  
  9. } 
  10.  
  11. //插入元素 
  12.  
  13. function listInsert(&$sqlist,$i,$e){ 
  14.  
  15.         //位置是否超出范围 
  16.  
  17.         if($i<1 && $i>$sqlist->length+1){ 
  18.  
  19.                 return false; 
  20.  
  21.         }    
  22.  
  23.         //从插入位置开始,后面的所有元素都退一位 
  24.  
  25.         if($i<=$sqlist->length){//要插入的位置不是在尾部 
  26.  
  27.                 for($k=$sqlist->length-1;$k>=$i-1;$k--){ 
  28.  
  29.                         $sqlist->data[$k+1]=$sqlist->data[$k]; 
  30.  
  31.                 }    
  32.  
  33.         }    
  34.  
  35.         //新元素插入 
  36.  
  37.         $sqlist->data[$i-1]=$e; 
  38.  
  39.         //长度加1 
  40.  
  41.         $sqlist->length++; 
  42.  
  43.         return true; 
  44.  
  45. } 
  46.  
  47. //获取元素 
  48.  
  49. function getElement($sqlist,$i,&$e){ 
  50.  
  51.         if($sqlist->length==0 || $i<1 || $i>$sqlist->length){ 
  52.  
  53.                 return false; 
  54.  
  55.         }    
  56.  
  57.         $e=$sqlist->data[$i-1]; 
  58.  
  59.         return true; 
  60.  
  61. } 
  62.  
  63. //删除元素 
  64.  
  65. function listDelete($sqlist,$i,&$e){ 
  66.  
  67.         if($sqlist->length==0 || $i<1 || $i>$sqlist->length){ 
  68.  
  69.                 return false; 
  70.  
  71.         }    
  72.  
  73.         $e=$sqlist->data[$i-1]; 
  74.  
  75.         //如果是最后一个元素 
  76.  
  77.         if($i!=$sqlist->length){ 
  78.  
  79.                 //在删除位置之后的元素,往前移动一位 
  80.  
  81.                 for($k=$i-1;$k<=$sqlist->length-1;$k++){ 
  82.  
  83.                         $sqlist->data[$k]=$sqlist->data[$k+1]; 
  84.  
  85.                 }    
  86.  
  87.         }    
  88.  
  89.         $sqlist->length--; 
  90.  
  91. } 
  92.  
  93. //插入线性表 
  94.  
  95. $sqlist=new Sqlist(); 
  96.  
  97. listInsert($sqlist,1,"Tau"); 
  98.  
  99. listInsert($sqlist,1,"Shihan"); 
  100.  
  101. //获取元素 
  102.  
  103. $e=""; 
  104.  
  105. getElement($sqlist,2,$e); 
  106.  
  107. echo $e."\n";//输出Tau 
  108.  
  109. //删除元素 
  110.  
  111. listDelete($sqlist,1,$e); 
  112.  
  113. var_dump($sqlist); 

Tags: PHP线性表的顺序

分享到: