function delete_array_element($arr,$pos)
for($i=$pos-1;$i<$length-1;$i++)
array_pop($arr);
return $arr;
}$pos = 3;
echo "
除第位置上的元素後:";
echo implode(' ',delete_array_element($arr,$pos))."
";
<?php
header("content-type:text/html;charset=utf-8");
class lnode
}class singlelinkedlist
//返回單鏈表長度
public static function getlength()
public function getisempty()
else
}public function clearsll()
self::$mlength=0;}}
public function getheadcreatesll($sarr)
}else
return true;
}public function gettailcreatesll($sarr)
}else
}public function getelemforpos($i)
return $p->melem;
}else
}public function getelemi***ist($value)
if($p->melem==value)
else}}
public function getelemposition($value)
if($p->melem==$value)
else}}
/*單鏈表的插入操作
**@param int $i 插入元素的位序,即在什麼位置插入新的元素,從1開始
*@param mixed $e 插入的新的元素值
*@return boolean 插入成功返回true,失敗返回false
*/public function getinsertelem($i,$e)
$q=new lnode;
$q->melem=$e;
$q->mnext=$p->mnext;
$p->mnext=$q;
self::$mlength++;
return true;
}/**
*刪除單鏈中第$i個元素
*@param int $i 元素位序
*@return boolean 刪除成功返回true,失敗返回false
*/public function getdeleteelem($i)
else
$q=$p->mnext;
$p->mnext=$q->mnext;
unset($q);
self::$mlength--;
return true;}}
public function getallelem()
if($p->melem)
$all=$p->melem;
return $all;}}
public function getelemunique()
else
}//處理最後乙個元素
if(strcmp($p->melem,$q->melem)===0)
$p=$p->mnext;
}//end of while
} }}
///test//
$node=new singlelinkedlist;
$arr=array('gbw','michael','php','js');
//$node->getheadcreatesll($arr);
//print_r($node->getallelem());
$node->gettailcreatesll($arr);
echo $node->getelemforpos(2);
$pos=$node->getelemposition('gbw');
echo $pos;
$node->getdeleteelem($pos);
$node->getinsertelem(1,'gbw2');
print_r($node->getallelem());
/**
* class stack
* 用php模擬順序棧的基本操作
*/class stack
$this->top++;
$this->stack[$this->top] = $elem;
} //出棧
public function pop()
$elem = $this->stack[$this->top];
unset($this->stack[$this->top]);
$this->top--;
return $elem;
} //列印棧
public function show()
echo "
"; }}
$stack = new stack();
$stack->push(3);
$stack->push(5);
$stack->push(8);
$stack->push(7);
$stack->push(9);
$stack->push(2);
$stack->show();
$stack->pop();
$stack->pop();
$stack->pop();
$stack->show();
/**
* class deque
* 使用php實現雙向佇列
*/class deque
public function addlast($item)
public function removefirst()
public function removelast()
public function show()
echo "
"; }
}$deque = new deque();
$deque->addfirst(2);
$deque->addlast(3);
$deque->addlast(4);
$deque->addfirst(5);
$deque->show();
//方法一
function joseph_ring($n,$m)
}return $arr[0];
}//方法二
function joseph_ring2($n,$m)
return $r + 1;
}echo "
".joseph_ring(60,5)."
"; echo "
".joseph_ring2(60,5)."
";
<?php
class test implements iterator
public function current()
public function key()
public function next()
public function valid()
} //測試
$t=new test;
foreach($t as $k=>$v)
?>
常用資料結構
文章參考 資料結構 c語言版 嚴蔚敏 線性表 有頭有尾,中間節點有前驅有後繼 定義 一組連續的儲存單元依次儲存線性表的資料元素。定長順序表 typedef struct sqlist psqlist 不定長順序表 typedef struct dsqlist dsqlist,pdsqlist 單鏈表...
常用資料結構
基本資料結構 邏輯 集合,線性結構,樹形結構,圖形結構 基本資料結構 物理 順序,鏈式,索引,雜湊。陣列,棧,鍊錶,圖,雜湊表,對列,樹,堆 陣列 在記憶體中連續儲存多個元素的結構,在記憶體中的分配是連續,通過陣列下標運算元組元素 建立陣列 int a int a new int 3 int a n...
常用資料結構
前言 常用的資料結構主要包括陣列 鍊錶 串 棧 佇列 樹 圖 目錄 一 陣列 二 鍊錶 三 棧四 佇列 五 樹六 圖 總結 實現 int data 100 int arr int malloc sizeof int 100 實現 參考 實現 實現 include include include de...