<?php
class MyList
{
public function __construct($data = array())
{
$this->data = $data;
}
function getLen()
{
return count($this->data);
}
function getCurrent()
{
return current($this->data);
}
function getTop()
{
return reset($this->data);
}
function getNext()
{
return next($this->data);
}
function getLast()
{
return end($this->data);
}
public function getData()
{
return $this->data;
}
public function insertLeft($val)
{
return array_unshift($this->data, $val);
}
public function removeLeft()
{
return array_shift($this->data);
}
public function replace($offset, $length, $replace)
{
return array_splice($this->data, $offset, $length, $replace);
}
public function insertRight($val)
{
return array_push($this->data, $val);
}
public function removeRight()
{
return array_pop($this->data);
}
function getPos($val)
{
return array_search($val, $this->data);
}
function getVal($pos)
{
if (isset($this->data['pos'])) {
return $this->data['pos'];
} else {
return false;
}
}
public function insertByPos($pos, $val)
{
return array_splice($this->data, $pos, 0, $val);
}
public function deleteByPos($pos){
if (isset($this->data[$pos])){
unset($this->data[$pos]);
$this->data = array_values($this->data);
return true;
}else{
return false;
}
}
}
$listObj = new MyList(array(1, 2, 3, 4, 5, 6));
//指定位置插入
$listObj->insertByPos(2,'w');
var_dump('指定位置插入:',$listObj->getData());
echo '<br />';
//指定位置删除
$listObj->deleteByPos(2);
var_dump('指定位置删除',$listObj->getData());
echo '<br />';
//左进
$listObj->insertLeft(0);
var_dump('左进:',$listObj->getData());
echo '<br />';
//左出
$listObj->removeLeft();
var_dump('左出',$listObj->getData());
echo '<br />';
//右进
$listObj->insertRight(7);
var_dump('右进',$listObj->getData());
echo '<br />';
//右出
$listObj->removeRight();
var_dump('右出',$listObj->getData());
echo '<br />';
php实现双向链表,实现增删改查
最新推荐文章于 2021-03-22 09:17:09 发布