链表
介绍
- 链表能合理利用内存内的非连续空间
- 链表都有data数据域和next指针域,data数据域可以存放该节点对应的任何数据类型如char,int等。next指针域是指向链表中下一个节点的引用指针
1
2
3
4
5
6
7
8
9
10struct LNode {
int data;
struct LNode * next;
struct LNode *head, *middle, *last;
head - (LNode *)malloc(sizeof(struct LNode));middle = (LNode *)malloc(sizeof(struct LNode));last
= (LNode *)malloc(sizeof(struct LNode));
head->data = 10;
middle->data = 20;
last->data = 30;
head->next = middle;middle->next = last;last->next=NULL;
链表和数组的区别
数组 元素始终存在连续的内存位置,在运行时不能随意改变大小。访问元素可以直接访问。增删要动大量数据。
链表 在存储时会配备一个指针,用于指向其后续元素,这样可以通过指针将所有元素连接起来,指针可以指向下一个空间,做到随意增删。访问元素必须历遍整个链表。增删数据只需更改指针