线性表的储存方式:
(1)顺序储存:用连续的储存单元进行数据的储存。
分配储存单元:
typedef struct{
int *elem;
int legth; //线性表长度
int listSize;//线性表的储存位置
} SqList;
a>优点:由于是储存的单元是连续的,所以可以快速进行查找数据向我们是编程中使用的NSArray,表示数组一样。
b>缺点:在删除和添加过程中需要移动的数据比较多。
(2)链式储存:任意的储存单元进行数据的储存。每一组储存影像代表一个储存的元素------我们称之为(结点)。
结点:包括两部分,指针域:储存直接后继储存位置。
数据域:储存元素信息。
分配储存单元:
//线性表的链式储存结构
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;
a>优点:在删除和添加过程中需要移动的数据比较少。
b>缺点:与顺序列表相比较由原来“位序表示”--》变为目前的线性链表“位置表示”,查找数据需要重头开始。而且我们在储存数据时需要储存相应的指针所以需要的内存密度可能小与顺序储存。