第三节 - 线性表的链式存储结构(一)
发布时间:2020-09-20 10:30来源:未知
第三节 线性表的链式存储结构(一)
一、单链表(线性链表)
1、单链表的概念
结点的结构:
单链表:
链表不同于顺序表,顺序表占用的存储空间必须是连续的,而链表的各结点占用的存储空间之间可以是连续的,也可以是不连续的;但每一个链结点内部占用的存储单元的地址必须是连续的。因此链表中结点的逻辑次序和物理次序不一定相同,通过指针来反映结点之间的逻辑关系。
2、单链表表数据类型的定义
typedef struct node //结点类型定义
{ DataType data; //结点数据域
struct node *next; //结点指针域
}ListNode;
typedef ListNode *LinkList;
ListNode *p; //定义一个指向结点的指针变量
LinkList head; //定义指向单链表的头指针
p->data若出现在表达式中,它表示由p所指的链结点的数据域内容;否则,表示由p所指的那个结点的数据域(位置)。
p->data=x; p->data=p->data+25
(位置) (位置) (内容)
p->next若出现在表达式中,它表示由p所指的链结点的指针域内容,也就是p所指的链结点的下一个链结点的存储地址;否则,表示由p所指的那个链结点的指针域(位置)。
对于表达式中的p->next->data,表示p所指的链结点的下一个链结点的数据域中的信息。