classsqlist{public$elem; public$length; public$size;}classlinear{const list_init_size = 10; const list_increment = 5; private$list = null; /** * 构造一个空的线性表 */publicfunctioninitlist() {$this->list = new sqlist(); $this->list->elem = array(); $this->list->length = 0; $this->list->size = self::list_init_size; returntrue; } /** * 销毁线性表 */publicfunctiondestorylist() {if (is_object($this->list)) { $this->list = null; } } /** * 是否为空表 */publicfunctionlistempty() {if (is_object($this->list)) { return$this->list->length == 0 ? true : false; } } /** * 返回元素个数 */publicfunctionlistlength() {if (is_object($this->list)) { return$this->list->length; } } /** * 获取指定位置的元素 */publicfunctiongetelem($i) {if ($i 1 || $i > $this->list->length + 1) { returnfalse; } return$this->list->elem[$i-1]; } /** * 在指定位置插入元素 */publicfunctionlistinsert($i, $e) {if ($i 1 || $i > $this->list->length + 1) { returnfalse; } if ($this->list->length >= $this->list->size) { $this->list->size += self::list_increment; } for ($j = $this->list->length; $j >= $i; $j--) { $this->list->elem[$j] = $this->list->elem[$j-1]; } $this->list->elem[$i-1] = $e; $this->list->length++; } /** * 删除指定位置数据元素 */publicfunctionlistdelete($i) {if ($i 1 || $i > $this->list->length) { returnfalse; } $data = $this->list->elem[$i-1]; for ($j = $i -1; $j $this->list->length -1; $j++) { $this->list->elem[$j] = $this->list->elem[$j+1]; } unset($this->list->elem[$this->list->length-1]); $this->list->length--; return$data; }}
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php实现线性表的顺序存储结构,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。