线性表是元素之间的线性关系,也就是“一个接一个”。
有两种实现,一种是顺序表,一种是链表。
–顺序表
顺序表是用一块连续的内存空间存放数据,所以好处就是定位某个位置的元素是比较容易,
但插入删除时需要移动元素,导致效率低。
一般顺序表的数据结构定义如下:1
2
3
4typedef struct {
T data[maxsize];
int last;
}
我实现了一个完整的顺序表的类,点这里查看
包括了一些基本的操作,如插入元素,定位元素,删除元素等。
–链表
链表是用指针实现的,不需要连续的内存空间,所以插入删除速度很快。
但相应的,由于地址不连续,定位某个位置的元素会比较慢。
链表的数据结构一般包含两个部分,数据域和指针域。如下:1
2
3
4typedef struct Node{
T data;
struct Node *next;
}
同样我也实现了一个完整的链表类,点这里查看
实现了增删改查。