新聞中心
數(shù)據(jù)結構算法在php編程中的作用?
數(shù)據(jù)結構是在整個計算機科學與技術領域上廣泛被使用的術語。它用來反映一個數(shù)據(jù)的內(nèi)部構成,即一個數(shù)據(jù)由那些成分數(shù)據(jù)構成,以什么方式構成,呈什么結構。數(shù)據(jù)結構有邏輯上的數(shù)據(jù)結構和物理上的數(shù)據(jù)結構之分。邏輯上的數(shù)據(jù)結構反映成分數(shù)據(jù)之間的邏輯關系,而物理上的數(shù)據(jù)結構反映成分數(shù)據(jù)在計算機內(nèi)部的存儲安排。數(shù)據(jù)結構是數(shù)據(jù)存在的形式。 數(shù)據(jù)結構是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應,通過這組算法集合可以對數(shù)據(jù)結構中的數(shù)據(jù)進行某種操作。
創(chuàng)新互聯(lián)IDC提供業(yè)務:服務器托管,成都服務器租用,服務器托管,重慶服務器租用等四川省內(nèi)主機托管與主機租用業(yè)務;數(shù)據(jù)中心含:雙線機房,BGP機房,電信機房,移動機房,聯(lián)通機房。
使用php實現(xiàn)的基本的數(shù)據(jù)結構和算法,什么二叉樹、二叉搜索樹、AVL樹、B樹、鏈表和常見排序、搜索算法等等,而且全部是使用面向對象來實現(xiàn)的,確是是很強。
PHP的數(shù)據(jù)類型有哪些?每種數(shù)據(jù)類型適用于哪些應用場合?
借用“短發(fā)人”的數(shù)據(jù),手工完善一下。
boolean (布爾型) 一般用于判斷,true或false。比如是否檢測,是否完成,是否畢業(yè)等。
integer (整型)一般用于年齡,數(shù)量等沒有小數(shù)點的計算。比如1 2 33 -9等。
float (浮點型, 也稱作 double) 一般用于金錢,面積、體積等科學,含小數(shù)點的計算。比如3.1415926585897932
string (字符串)一般用于人名,物品等常規(guī)字符串。比如“張三”“桌子”“我來了”
array (數(shù)組)一般用于復雜數(shù)據(jù)處理,可以多維數(shù)據(jù)結構,可以放布爾、整型、浮點、字符、數(shù)組等。
object (對象) 一般用于面向對象,里面包含方法和變量。
PHP 數(shù)據(jù)結構隊列(SplQueue)和優(yōu)先隊列(SplPriorityQueue)簡單使用實例
隊列這種數(shù)據(jù)結構更簡單,就像我們生活中排隊一樣,它的特性是先進先出(FIFO)。
PHP
SPL中SplQueue類就是實現(xiàn)隊列操作,和棧一樣,它也可以繼承雙鏈表(SplDoublyLinkedList)輕松實現(xiàn)。
SplQueue類摘要如下:
SplQueue簡單使用如下:
復制代碼
代碼如下:
$queue
=
new
SplQueue();
/**
*
可見隊列和雙鏈表的區(qū)別就是IteratorMode改變了而已,棧的IteratorMode只能為:
*
(1)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_KEEP
(默認值,迭代后數(shù)據(jù)保存)
*
(2)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE
(迭代后數(shù)據(jù)刪除)
*/
$queue-setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE);
//SplQueue::enqueue()其實就是
SplDoublyLinkedList::push()
$queue-enqueue('a');
$queue-enqueue('b');
$queue-enqueue('c');
//SplQueue::dequeue()其實就是
SplDoublyLinkedList::shift()
print_r($queue-dequeue());
foreach($queue
as
$item)
{
echo
$item
.
PHP_EOL;
}
print_r($queue);
而優(yōu)先隊列SplPriorityQueue是基于堆(后文介紹)實現(xiàn)的。
SplPriorityQueue的類摘要如下:
SplPriorityQueue簡單使用:
$pq
=
new
SplPriorityQueue();
$pq-insert('a',
10);
$pq-insert('b',
1);
$pq-insert('c',
8);
echo
$pq-count()
.PHP_EOL;
//3
echo
$pq-current()
.
PHP_EOL;
//a
/**
*
設置元素出隊模式
*
SplPriorityQueue::EXTR_DATA
僅提取值
*
SplPriorityQueue::EXTR_PRIORITY
僅提取優(yōu)先級
*
SplPriorityQueue::EXTR_BOTH
提取數(shù)組包含值和優(yōu)先級
*/
$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);
while($pq-valid())
{
print_r($pq-current());
//a
c
b
$pq-next();
}
php有什么數(shù)據(jù)結構可以實現(xiàn)雙向索引查詢
數(shù)組就是典型的數(shù)據(jù)結構了,使用數(shù)組操作函數(shù),就可以實現(xiàn)單向和多向隊列了。 操作函數(shù)有: array_shift array_unshift array_push array_pop
網(wǎng)頁題目:常用數(shù)據(jù)結構php 常用數(shù)據(jù)結構和算法
網(wǎng)站網(wǎng)址:http://fisionsoft.com.cn/article/docsdcc.html