一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例

PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例

2020-09-23 16:11PHP教程網 PHP教程

這篇文章主要介紹了PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例的相關資料,需要的朋友可以參考下

雙鏈表是一種重要的線性存儲結構,對于雙鏈表中的每個節點,不僅僅存儲自己的信息,還要保存前驅和后繼節點的地址。

PHP 雙鏈表(SplDoublyLinkedList)簡介和使用實例

PHP SPL中的SplDoublyLinkedList類提供了對雙鏈表的操作。
SplDoublyLinkedList類摘要如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
SplDoublyLinkedList implements Iterator  , ArrayAccess  , Countable  {
 
  public __construct ( void )
  public void add ( mixed $index , mixed $newval )
  //雙鏈表的頭部節點
  public mixed top ( void )
  //雙鏈表的尾部節點
  public mixed bottom ( void )
  //雙聯表元素的個數
  public int count ( void )
  //檢測雙鏈表是否為空
  public bool isEmpty ( void )
 
 
  //當前節點索引
  public mixed key ( void )
  //移到上條記錄
  public void prev ( void )
  //移到下條記錄
  public void next ( void )
  //當前記錄
  public mixed current ( void )
  //將指針指向迭代開始處
  public void rewind ( void )
  //檢查雙鏈表是否還有節點
  public bool valid ( void )
 
  //指定index處節點是否存在
  public bool offsetExists ( mixed $index )
  //獲取指定index處節點值
  public mixed offsetGet ( mixed $index )
  //設置指定index處值
  public void offsetSet ( mixed $index , mixed $newval )
  //刪除指定index處節點
  public void offsetUnset ( mixed $index )
 
  //從雙鏈表的尾部彈出元素
  public mixed pop ( void )
  //添加元素到雙鏈表的尾部
  public void push ( mixed $value )
 
  //序列化存儲
  public string serialize ( void )
  //反序列化
  public void unserialize ( string $serialized )
 
  //設置迭代模式
  public void setIteratorMode ( int $mode )
  //獲取迭代模式SplDoublyLinkedList::IT_MODE_LIFO (Stack style) SplDoublyLinkedList::IT_MODE_FIFO (Queue style)
  public int getIteratorMode ( void )
 
  //雙鏈表的頭部移除元素
  public mixed shift ( void )
  //雙鏈表的頭部添加元素
  public void unshift ( mixed $value )
 
}

使用起來也是簡單

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$list = new SplDoublyLinkedList();
$list->push('a');
$list->push('b');
$list->push('c');
 
$list->unshift('top');
$list->shift();
 
print_r(array(
  'pop' => $list->pop(),
  'count' => $list->count(),
  'isEmpty' => $list->isEmpty(),
  'bottom' => $list->bottom(),
  'top' => $list->top()
));
 
$list->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO);
print_r($list->getIteratorMode());
 
for($list->rewind(); $list->valid(); $list->next()) {
  echo $list->current().PHP_EOL;
}
 
print_r($a = $list->serialize());
//print_r($list->unserialize($a));
 
$list->offsetSet(0,'new one');
$list->offsetUnset(0);
print_r(array(
  'offsetExists' => $list->offsetExists(4),
  'offsetGet' => $list->offsetGet(0),
 
));
print_r($list);

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜躁 | 视频免费视频观看网站 | 国产精品99久久免费观看 | 俄罗斯美女毛茸茸bbwbbw | 涩情主播在线翻车 | 男女做性视频 | 日本免费v片一二三区 | 日本在线精品视频 | 国产精品午夜剧场 | 色cccwww在线播放 | 男同精品视频免费观看网站 | 久久热这里只有 精品 | 久久免费看少妇高潮A片2012 | 7777奇米影视 | 免费a视频在线观看 | 无码射肉在线播放视频 | 五月天精品视频在线观看 | 国产高清在线精品一区二区三区 | 男生和老师一起差差差 | 我与旗袍老师疯狂床震 | 丝袜护士强制脚足取精 | 亚洲免费色| 久久re视频精品538在线 | 国产精品最新 | 国产亚洲精品一区久久 | 男生操男生 | 门房秦大爷在线阅读 | 玩50岁四川熟女大白屁股直播 | 男女刺激高清视频在线观看 | 亚洲品质自拍网站 | daring国家队在线观看樱花动漫 | 操操久久| 97精品久久天干天天蜜 | 亚洲不卡高清免v无码屋 | 99在线观看免费视频 | 深夜在线观看网站 | 久久综合网久久综合 | 美女被到爽流动漫 | 俺去也亚洲色图 | 国产3p在线 | 成人依依网 |