C语言链表中q->next=p;表示什么意思?

Python011

C语言链表中q->next=p;表示什么意思?,第1张

q->next = p表示将节点p加入到节点q之后。

意思:使当前指针指向链表的下一个结点

一般作用在数据结构中的单链表里由应用,语句中的p一般指向一个结构体类型的数据,此类型的数据通常表示节点;结构体里存放的一些数据和记录下一个节点地址的指针变量next;这个next就好比链条一样,连接着一个个节点。

->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么要用指针取出结构体中的数据,就要用到“->”.

扩展资料

链表的特点:

1、n个节点离散分配

2、每一个节点之间通过指针相连

3、每一个节点有一个前驱节点和一个后继节点

4、首节点没有前驱节点,尾节点没有后继节点

创建链表前须知

首节点:存放第一个有效数据的节点。

头节点:在单链表的第一个结点之前附设一个结点,它没有直接前驱,称之为头结点,头结点的数据域可以不存储任何信息,指针域指向第一个节点(首节点)的地址。头结点的作用是使所有链表(包括空表)的头指针非空。

头指针:指向头节点的指针。

尾节点:存放最后一个有效数据的节点。

尾指针:指向尾节点的指针。

参考资料来源:

百度百科——链表

像int一样都是类型的变量;他是定义的一个结构体指针,没有赋值时指向NULL;赋值后指向一个结构体地址;其功能是吧结构体关联起来,从本结构体可以找到下一个结构体。(就好像我这保存着你的地址,我可以找到你,你又知道别人的地址,我通过你就可以找到别人。)next也可以说只是个名,便于我们直观的认识他的功能和意义。

(1)

概念

线性链表,单链表,结点;数据域,指针域;头指针,头结点。

(2)

特点

用指针表示数据之间的逻辑关系(逻辑相邻的元素物理位置不一定相邻)。

(3)

类型定义

简而言之,“数据+

指针”。

typedef

struct

LNode{

DataType

data

struct

LNode

*next

}LNode,*LinkList

这里图片传不上去,不好意思,要不然可以更直观地表示

(4)

基本形态

带头结点的单链表的基本形态有:

1°.

单链表空

条件:L->next==0

2°.

单链表不空

条件:L->next!=0

建立链表的方法

思路:

1、建立空表(头结点);

2、依次插入数据结点

//伪代码

voidCreateLinkList(LinkList&L,intn)

{

// 建立空表

L=(LinkList)malloc(sizeof(LNode))

L->next=NULL// 空表

p=L// 用p指向表尾

// 插入元素

for(i=0i<ni++ ){

scanf(x)

s=(LinkList)malloc(sizeof(LNode))

s->data=x

// 插入表尾

s->next=p->next

p->next=s

p=s// 新的表尾

}

}