php数据结构链表代码,数据结构单链表代码

数据结构如何建立链表,附代码?

头插法:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、雅安服务器托管、营销软件、网站建设、陕州网站维护、网站推广。

void CreateListF(LNode *L,int a[],int n)

{

LNode *s;

int i;

L = (LNode*)malloc(sizeof(LNode));

L-next = NULL;

for(int i=0;in;i++)

{

s= (LNode*)malloc(sizeof(LNode));

s-data = a[i];

s-next = L-next;

L-next = s; //成为新的开始

}

}

尾插法:

void CreateListR(LNode *L, int a[],int n)

{

LNode *s,*r;

int i;

L = (LNode)malloc(sizeof(LNode));

L-next=NULL;

r=L;

for (i=0; i n; i++)

{

s = (LNode *)malloc(sizeof(LNode));

s-data = a[i];

r-next=s;

r = r-next;

}

r-next = NULL; /* 表示当前链表结束 */

}

PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例

队列这种数据结构更简单,就像我们生活中排队一样,它的特性是先进先出(FIFO)。

PHP

SPL中SplQueue类就是实现队列操作,和栈一样,它也可以继承双链表(SplDoublyLinkedList)轻松实现。

SplQueue类摘要如下:

SplQueue简单使用如下:

复制代码

代码如下:

$queue

=

new

SplQueue();

/**

*

可见队列和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:

*

(1)SplDoublyLinkedList::IT_MODE_FIFO

|

SplDoublyLinkedList::IT_MODE_KEEP

(默认值,迭代后数据保存)

*

(2)SplDoublyLinkedList::IT_MODE_FIFO

|

SplDoublyLinkedList::IT_MODE_DELETE

(迭代后数据删除)

*/

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

而优先队列SplPriorityQueue是基于堆(后文介绍)实现的。

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

仅提取优先级

*

SplPriorityQueue::EXTR_BOTH

提取数组包含值和优先级

*/

$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);

while($pq-valid())

{

print_r($pq-current());

//a

c

b

$pq-next();

}

PHP实现:如何在只给定单链表中某个结点的指针的情况下删除该结点

p是要删除的结点,q是p的前一个结点 q-next = p-next;//删除的结点的后一结点的首地址赋值给删除的结点的前一结点的next p-next-prior = q;//删除的结点的后一结点的prior指向删除的结点的前一结点的首地址


网站名称:php数据结构链表代码,数据结构单链表代码
转载源于:http://scjbc.cn/article/hdeocg.html

其他资讯