-
数组的分类
静态数组:int arr[10],数据过多造成空间溢出;数据过小空间浪费
动态数组:malloc calloc realloc,合理利用空间,但不能快捷的插入或删除数据(会涉及到大量的数据移动)
一、单链表基本知识
(一)动态链表(线性表)
每个元素实际上是一个单独的结构体对象,而所有对象都通过每个元素中的指针链接在一起
每个结构体对象叫做节点(包含数据域、指针域),节点是动态生成的(malloc)
第一个数据节点叫做链表的首元节点
第一个节点不用于存储数据,只用于代表链表的起始点,则这个节点称为链表的头节点
(二)特点
链表没有固定的长度,可以自由增加节点
链表能够实现快速的插入删除数据,也就是可以快速的插入和删除链表中的节点
与数组类似,链表也是一种线性数据结构
链表的尾结点的后继必定指向空
(三)区别
数组和顺序表是顺序存储的,也就是内存是连续的
链表是通过指针将不连续的内存连接起来,实现链式存储的
二、头文件
(一)防止头文件重复包含
-
#pragma once是VS自带的防止头文件包含
-
条件编译的方式
#pragma once
#ifndef LINKLIST
#define LINKLIST
#endif // 程序文件的最尾端
(二)一些简单的声明
-
可以将数据域的类型取别名,方便一改全改
-
对于输入输出这些需要反复进行的操作,尽量简化,可以通过宏定义完成