链表简介
链表是一种数据结构,由若干个节点串联而成,构成一条完整的链表。
可以把链表理解成为一列火车,每个节点,就是一节车厢。
车厢可以装货物(存储数据),每节车厢有一个挂钩(指针),连接下一节车厢。
火车头,就是链表的头节点。头节点没有数据(不装货物),实际第几个节点是从车厢开始算起。
链表还可以分为单链表、双链表、循环链表。本文先介绍一下单链表。
链表优点:
链表可以动态的存储数据,不需要一开始就把所有的空间创建出来,而且空间也不必连续。
而数组则必须一开始就确定数组的大小,创建出数组的完整空间,并且空间必须是连续的。
缺点:
不能根据索引查找,只能根据指针进行遍历。
链表的应用:
最典型的使用链表结构进行存储的数据,比如轨迹跟踪数据,需要记录每个时刻的位置、时间、角度、速度、里程等信息,并且,每个时刻的数据和它的前一时刻、后一时刻都是紧密相连的。
单链表结构
struct Node
{
int data; //数据
Node *next; //指向下一个节点的指针(存放下一个节点的地址)
};
这是链表的一个节点,火车头和所有车厢都是这样的一个节点。
头节点(火车头)不装数据,尾节点的挂钩(next指针)为NULL。
创建一个新节点
Node *p &#