目录
1.1结点的建立
1.2为链表结点分配内存空间
1.stdlib:malloc函数与free函数
2.new运算符与delete运算符
1.3链表的基本操作
1.链表的创建
(1)头插法
(2)尾插法
2.查找
3.插入
4.删除
5.总结(小tip)
1.4静态链表(类似于数组)
1.1结点的建立
typedef struct node //typedef方法函数可以对于struct Node进行重命名
{
int data;//数据域,指定数据类型,以int为例,用于存放结点的数据
struct Node* next;//指针域,指向链表中的下一个结点的地址
}LNode, * LinkList;//因为用到typedef,所以可以在该行给Node起别名,起了2个别名
解释:
(1)可以理解成:*LinkList=&LNode则LinkList=&LNode、*LinkList=LNode
访问时有4种方式:
①LinkList->data,LinkList->next
②(&LNode)->data,(& LNode)->next
③(*LinkList).data,(*LinkList).next
④LNode.data,LNode.next
定义新的结点:LNode *L = LinkList L
例:参考:http://t.csdnimg.cn/79T2Whttp://t.csdnimg.cn/79T2W
(2)关于typedef:
它是C语言中的一个关键字,用于为现有的类型定义一个新的名字即别名。其基本语法如下:typedef 原类型 新类型名; 可以简化代码
(3)关于头结点与第一个结点:
头结点:head,数据域为空,指针域next指向第一个数据域有内容的结点(即第一个结点)。
好处:简化了对边界的处理
1.2为链表结点分配内存空间
1.stdlib:malloc函数与free函数
分配空间:
解释:申请内存大小为sizeof(node) 的空间,返回指向这块空间的指针,将其强制转换为相应的指针类型,并将其赋给node*型的指针变量p,通过p访问它,申请失败(一般是申请了较大的动态数组),返回空指针。
释放