php分銷數(shù)據(jù)結(jié)構(gòu) php 數(shù)據(jù)結(jié)構(gòu)

PHP 數(shù)據(jù)結(jié)構(gòu) 算法 三元組 Triplet

復(fù)制代碼

成都創(chuàng)新互聯(lián)致力于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計,成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇成都創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

代碼如下:

?php

/**

*

三元組

Triplet

*

*/

class

Triplet

{

private

$_data

=

null;

//

初始化三元組

public

function

init($val1,$val2,$val3)

{

$this-_data[0]

=

$val1;

$this-_data[1]

=

$val2;

$this-_data[2]

=

$val3;

return

true;

}

//

銷毀三元組

public

function

destroy()

{

unset($this-_data);

return

true;

}

//

返回第$key的值

public

function

get($key)

{

if($key

1

||

$key

3)

return

false;

return

$this-_data[$key

-

1];

}

//

設(shè)置第$key元的值為$val

public

function

put($key,$val)

{

if($key

1

||

$key

3)

return

false;

$this-_data[$key

-

1]

=

$val;

return

true;

}

//

是否按升序排序

public

function

isAscending()

{

return

($this-_data[0]

=

$this-_data[1])

($this-_data[1]

=

$this-_data[2]);

}

//

是否按降序排序

public

function

isDescending()

{

return

($this-_data[0]

=

$this-_data[1])

($this-_data[1]

=

$this-_data[2]);

}

//

獲取最大值

public

function

max()

{

return

($this-_data[0]

=

$this-_data[1])?

($this-_data[0]

=

$this-_data[2])?

$this-_data[0]

:

$this-_data[2]

:

($this-_data[1]

=

$this-_data[2])?

$this-_data[1]

:

$this-_data[2];

}

//

獲取最小值

public

function

min()

{

return

($this-_data[0]

=

$this-_data[1])?

($this-_data[0]

=

$this-_data[2])?

$this-_data[0]

:

$this-_data[2]

:

($this-_data[1]

=

$this-_data[2])?

$this-_data[1]

:

$this-_data[2];

}

}

//

$objTriplet

=

new

Triplet();

echo

"init:";var_dump($objTriplet-init(1,2,3));

echo

"br/";

echo

"get

1:";var_dump($objTriplet-get(1));

echo

"br/";

echo

"get

4:";var_dump($objTriplet-get(4));

echo

"br/";

//

false

echo

"put

3,4:";var_dump($objTriplet-put(3,4));

echo

"br/";

echo

"max:";var_dump($objTriplet-max());

echo

"br/";

echo

"min:";var_dump($objTriplet-min());

echo

"br/";

echo

"isAscending:";var_dump($objTriplet-isAscending());

echo

"br/";

echo

"isDescending:";var_dump($objTriplet-isDescending());

echo

"br/";

?

PHP的數(shù)據(jù)類型有哪些?每種數(shù)據(jù)類型適用于哪些應(yīng)用場合?

借用“短發(fā)人”的數(shù)據(jù),手工完善一下。

boolean (布爾型) 一般用于判斷,true或false。比如是否檢測,是否完成,是否畢業(yè)等。

integer (整型)一般用于年齡,數(shù)量等沒有小數(shù)點的計算。比如1 2 33 -9等。

float (浮點型, 也稱作 double) 一般用于金錢,面積、體積等科學(xué),含小數(shù)點的計算。比如3.1415926585897932

string (字符串)一般用于人名,物品等常規(guī)字符串。比如“張三”“桌子”“我來了”

array (數(shù)組)一般用于復(fù)雜數(shù)據(jù)處理,可以多維數(shù)據(jù)結(jié)構(gòu),可以放布爾、整型、浮點、字符、數(shù)組等。

object (對象) 一般用于面向?qū)ο?,里面包含方法和變量?/p>

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

數(shù)據(jù)結(jié)構(gòu)是在整個計算機科學(xué)與技術(shù)領(lǐng)域上廣泛被使用的術(shù)語。它用來反映一個數(shù)據(jù)的內(nèi)部構(gòu)成,即一個數(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ù)在計算機內(nèi)部的存儲安排。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)存在的形式。 數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應(yīng),通過這組算法集合可以對數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進行某種操作。

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

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

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

PHP

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

SplQueue類摘要如下:

SplQueue簡單使用如下:

復(fù)制代碼

代碼如下:

$queue

=

new

SplQueue();

/**

*

可見隊列和雙鏈表的區(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()其實就是

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

/**

*

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

*

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();

}

分享標(biāo)題:php分銷數(shù)據(jù)結(jié)構(gòu) php 數(shù)據(jù)結(jié)構(gòu)
文章起源:http://muchs.cn/article30/dospepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站全網(wǎng)營銷推廣、網(wǎng)站策劃、外貿(mào)建站、網(wǎng)站設(shè)計軟件開發(fā)

廣告

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

商城網(wǎng)站建設(shè)