顺序表利用数组元素在物理位置上的邻接关系来表示线性表中的数据元素之间的逻辑关系,所以顺序表有这些缺点;
1,插入和删除操作需移动大量元素;
2,表的容量难以确定;
3,造成存储空间的“碎片”。
所以我们可以利用动态存储分配来存储线性表——单链表,
其存储单元可以是连续的也可以是不连续的, 结点由两部分组成;数据域(存放数据元素),指针域(存放后继元素的地址(结点地址))。
由于第一个元素无先驱,用头指针指向他,可以用来标识一个单链表;最后一个元素无后继,其指针域为NULL(^),也称尾标志。
为使空表和非空表的处理同一,可以在单链表开始结点前设一个类型相同的结点,头结点。
单链表的遍历不能对工作指针作“p++”操作(存储单元有可能不连续,p++有可能不指向下一个结点)应该用“p=p->next”。
在单链表的结点中设一个指向其前驱结点的指针域可以成为双链表。
循环链表,将终端结点指针域由空指针改为指向头结点;
静态链表是用数组来表示单链表,用数组元素的下标来模拟单链表的指针。
上面是学习总结,下面是可变参数函数(作业)资料
可变参数函数
1、可变参数函数的原型声明: