链表
简介:
单链表作为一个最基本的数据结构,是每一个小伙伴学习数据结构之路上的一个小小的开端,在这里我们就来了解一下什么是单链表。
单链表,顾名思义,他是一个想链子一样的结构,将每一个元素链接在一起,其中,每一个元素又叫做一个结点。链表实际上是物理地址上不连续,逻辑上连续的一种数据结构,每一个结点的连接是通过指针进行连接的,如果小伙伴还没有学习指针一定要先了解指针哦
图形表示
当然链表还有双向链表,循环链表等等,不过本文只做单链表的演示。
链表和数组的区别
1.链表是通过动态分配空间的,数组是固定空间大小的
2.数组的内存连续,而链表的内存是不连续的
3. 查找元素的时候,数组是通过下标定位的,时间复杂度为O(1),链表则是通过遍历找到元素的,时间复杂度为O(n).
4. 数组插入删除等操作需要移动,时间复杂度为O(n), 链表则不需要移动,只需要改变指针即可,时间复杂度为O(1).
代码实现
存储方式
链表的每一个结点存储方式是通过结构进行实现的
typedef struct Node
{
int data; //数据域
struct Node* pNext; //指针域
}List;
接下来实现链表增删改查四种基本操作
- 链表添加节点
List* GetNode(int num)
{
List* pTemp = NULL;
pTemp = (List*)malloc(sizeof(List));
pTemp->data = num;
pTemp->pNext = NULL;
return pTemp;