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// 新的表尾
}
}