一、链表是什么
1.链表是物理存储单元上非连续的,非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针地址实现,有一系列结点(地址)组成,结点可动态的生成.
2.结点包括两个部分:
(1)存储数据元素的数据域(内存空间).
(2)存储指针向下一个结点地址的指针域.
二、链表的作用
1.实现数据元素的存储按一定顺序储存,允许在任意位置插入和删除结点.
2.包括单项节点,双向结点,循环接点
3.c/c++/java都可以实现
三、链表的优点
优点:链表实现数据元素储存的顺序储存,是连续的
缺点:因为含有大量的指针域,所以占用空间大,同时因为只有头结点(后面说明)是明确知道地址的,所以查找链表中的元素需要从头开始寻找,非常麻烦.
四、学习链表的心得
1.对指针的简单理解
(1)指针及地址,就是说可以把指针看做一个地址;
(2)"int *a"可以理解为"int* a",表明a是一个指针,int*是类型,*a表示指针a所指向的内存的值.
2.对malloc和free函数的简单理解
malloc函数:
(1)从内存中申请分配指定字节大小的内存空间
如:malloc(4),malloc(sizeof(int))
(2)malloc函数返回void类型,它表示未确定类型的指针,可以强制转换为其它类型的指针
如下:
int *a;
a=(int *)malloc(sizeof(int));