php中使用的數(shù)據(jù)結(jié)構(gòu) php基本數(shù)據(jù)結(jié)構(gòu)及算法

PHP 數(shù)據(jù)結(jié)構(gòu)隊(duì)列(SplQueue)和優(yōu)先隊(duì)列(SplPriorityQueue)簡(jiǎn)單使用實(shí)例

隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)更簡(jiǎn)單,就像我們生活中排隊(duì)一樣,它的特性是先進(jìn)先出(FIFO)。

在大余等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),大余網(wǎng)站建設(shè)費(fèi)用合理。

PHP

SPL中SplQueue類就是實(shí)現(xiàn)隊(duì)列操作,和棧一樣,它也可以繼承雙鏈表(SplDoublyLinkedList)輕松實(shí)現(xiàn)。

SplQueue類摘要如下:

SplQueue簡(jiǎn)單使用如下:

復(fù)制代碼

代碼如下:

$queue

=

new

SplQueue();

/**

*

可見(jiàn)隊(duì)列和雙鏈表的區(qū)別就是IteratorMode改變了而已,棧的IteratorMode只能為:

*

(1)SplDoublyLinkedList::IT_MODE_FIFO

|

SplDoublyLinkedList::IT_MODE_KEEP

(默認(rèn)值,迭代后數(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()其實(shí)就是

SplDoublyLinkedList::push()

$queue-enqueue('a');

$queue-enqueue('b');

$queue-enqueue('c');

//SplQueue::dequeue()其實(shí)就是

SplDoublyLinkedList::shift()

print_r($queue-dequeue());

foreach($queue

as

$item)

{

echo

$item

.

PHP_EOL;

}

print_r($queue);

而優(yōu)先隊(duì)列SplPriorityQueue是基于堆(后文介紹)實(shí)現(xiàn)的。

SplPriorityQueue的類摘要如下:

SplPriorityQueue簡(jiǎn)單使用:

$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

/**

*

設(shè)置元素出隊(duì)模式

*

SplPriorityQueue::EXTR_DATA

僅提取值

*

SplPriorityQueue::EXTR_PRIORITY

僅提取優(yōu)先級(jí)

*

SplPriorityQueue::EXTR_BOTH

提取數(shù)組包含值和優(yōu)先級(jí)

*/

$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);

while($pq-valid())

{

print_r($pq-current());

//a

c

b

$pq-next();

}

php是什么

PHP屬于編程語(yǔ)言的一種,是一種用于創(chuàng)建動(dòng)態(tài)和交互式HTML網(wǎng)頁(yè)的腳本語(yǔ)言。

編程語(yǔ)言是一種被標(biāo)準(zhǔn)化的交流技巧,用來(lái)向計(jì)算機(jī)發(fā)出指令,定義計(jì)算機(jī)程序,讓程序員能夠準(zhǔn)確地定義計(jì)算機(jī)所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動(dòng)的一種計(jì)算機(jī)語(yǔ)言。而編程語(yǔ)言包含很多細(xì)分,而PHP就是其中一種。

它的主要特性為:

①開(kāi)源性和免費(fèi)性

由于PHP的解釋器的源代碼是公開(kāi)的,所以安全系數(shù)較高的網(wǎng)站可以自己更改PHP的解釋程序。另外,PHP運(yùn)行環(huán)境的使用也是免費(fèi)的。

②快捷性

PHP是一種非常容易學(xué)習(xí)和使用的一門語(yǔ)言,它的語(yǔ)法特點(diǎn)類似于C語(yǔ)言,但又沒(méi)有C語(yǔ)言復(fù)雜的地址操作,而且又加入了面向?qū)ο蟮母拍?,再加上它具有?jiǎn)潔的語(yǔ)法規(guī)則,使得它操作編輯非常簡(jiǎn)單,實(shí)用性很強(qiáng)。

③數(shù)據(jù)庫(kù)連接的廣泛性

PHP可以與很多主流的數(shù)據(jù)庫(kù)建立起連接,如MySQL、ODBC、Oracle等,PHP是利用編譯的不同函數(shù)與這些數(shù)據(jù)庫(kù)建立起連接的,PHPLIB就是常用的為一般事務(wù)提供的基庫(kù)。

④面向過(guò)程和面向?qū)ο蟛⒂?/p>

在PHP語(yǔ)言的使用中,可以分別使用面向過(guò)程和面向?qū)ο?,而且可以將PHP面向過(guò)程和面向?qū)ο髢烧咭黄鸹煊?,這是其它很多編程語(yǔ)言是做不到的。

優(yōu)點(diǎn)

①流行,容易上手

PHP是目前最流行的編程語(yǔ)言,這毋庸置疑。它驅(qū)動(dòng)全球超過(guò)2億多個(gè)網(wǎng)站,有全球超過(guò)81.7%的公共網(wǎng)站在服務(wù)器端采用PHP。PHP常用的數(shù)據(jù)結(jié)構(gòu)都內(nèi)置了,使用起來(lái)方便簡(jiǎn)單,也一點(diǎn)都不復(fù)雜,表達(dá)能力相當(dāng)靈活。

②開(kāi)發(fā)職位很多

在服務(wù)器端的網(wǎng)站編程中PHP會(huì)更容易幫助你找到工作。很多互聯(lián)網(wǎng)相關(guān)企業(yè)都在使用PHP開(kāi)發(fā)框架,所以可以說(shuō)市場(chǎng)對(duì)PHP的開(kāi)發(fā)程序員的需求還是比較大的。

③仍然在不斷發(fā)展

PHP在不斷兼容著類似closures和命名空間等技術(shù),同時(shí)兼顧性能和當(dāng)下流行的框架。版本是7之后,一直在提供更高性能的應(yīng)用。

④可植入性強(qiáng)

PHP語(yǔ)言在補(bǔ)丁漏洞升級(jí)過(guò)程中,核心部分植入簡(jiǎn)單易行,且速度快。

⑤拓展性強(qiáng)

PHP語(yǔ)言在數(shù)據(jù)庫(kù)應(yīng)用過(guò)程中,可以從數(shù)據(jù)庫(kù)調(diào)取各類數(shù)據(jù),執(zhí)行效率高

php 數(shù)據(jù)庫(kù)中輸出的數(shù)據(jù)結(jié)構(gòu)

從數(shù)據(jù)庫(kù)讀出來(lái)的原始數(shù)據(jù)是資源。還不是數(shù)組。

$result = mysql_Query("select * from tb_admin where parid=1")

while($list = mysql_fetch_array($result)){

print_r($list);//這里輸出的數(shù)組是將原數(shù)組拆開(kāi)來(lái)輸出。

}

原始的數(shù)據(jù)結(jié)構(gòu)應(yīng)是:

array(

[0]=array(

[id]=01

[classname]=我是

[url]=baidu.com

)

[1]=array(

//這里同上,不兩累贅

)

)

數(shù)據(jù)結(jié)構(gòu)算法在php編程中的作用?

數(shù)據(jù)結(jié)構(gòu)是在整個(gè)計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域上廣泛被使用的術(shù)語(yǔ)。它用來(lái)反映一個(gè)數(shù)據(jù)的內(nèi)部構(gòu)成,即一個(gè)數(shù)據(jù)由那些成分?jǐn)?shù)據(jù)構(gòu)成,以什么方式構(gòu)成,呈什么結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)有邏輯上的數(shù)據(jù)結(jié)構(gòu)和物理上的數(shù)據(jù)結(jié)構(gòu)之分。邏輯上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)之間的邏輯關(guān)系,而物理上的數(shù)據(jù)結(jié)構(gòu)反映成分?jǐn)?shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)安排。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存在的形式。 數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對(duì)應(yīng),通過(guò)這組算法集合可以對(duì)數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某種操作。

使用php實(shí)現(xiàn)的基本的數(shù)據(jù)結(jié)構(gòu)和算法,什么二叉樹(shù)、二叉搜索樹(shù)、AVL樹(shù)、B樹(shù)、鏈表和常見(jiàn)排序、搜索算法等等,而且全部是使用面向?qū)ο髞?lái)實(shí)現(xiàn)的,確是是很強(qiáng)。

網(wǎng)頁(yè)標(biāo)題:php中使用的數(shù)據(jù)結(jié)構(gòu) php基本數(shù)據(jù)結(jié)構(gòu)及算法
鏈接URL:http://www.muchs.cn/article28/doeghjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT手機(jī)網(wǎng)站建設(shè)、建站公司、App開(kāi)發(fā)、域名注冊(cè)、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化