数据结构学习笔记-静态链表(C语言实现)

       静态链表主要是为一些没有指针的高级开发语言而提供的。实现思路就是:创建一个数组,数组中的元素由两个属性组成,数据(data)、指针(cur)。指针指向下一个数组元素的下标。数组的第一个元素和最后一个元素不存放数据。数组之内除第一个数组元素,其余的数组空元素都被称为备用链表。数组的第一个元素的cur存放第一个备用链表的下标,数组的最后一个元素的cur存放第一个带有数据的数组元素的下标。在没有数据的数组中,最后一个数组元素的cur是0.

静态链表实现方法:

 init()方法:让数组中元素的cur分别指向下一个数组元素。最后一个数组中的元素的cur指向0

(因为是空链表)。

setData()方法:让数组中的第一个元素的cur存放第一个备用链表的下标,让数组中含有数据的

最后一个元素的cur存放0。

getBtcur()方法:返回第一个备用链表的下标,并让数组中第一个元素的cur存放下一个备用链

表的下标。

insertEle()方法:通过getBtcur()方法拿到备胎的下标,将数据存入该下标所代表的数组元

,定义一个变量用来存放数组最后一个元素的下标,循环,通过最后的这个元素的cur(也就是指针

)来找到要插入的地点的下标,将这个下标位置的数据元素的cur赋给备胎的cur,再把备胎的下标赋

给这个数据元素的cur。

freeNode()方法:将要删除的数组元素释放掉(就是将要删除的数组元素的cur指向数组第一个元

素的cur),变成备用链表,并让数组的第一个元素指向他。

deleteEle()方法:通过循环找到要删除的元素的前一个位置元素,让他直接指向要删除的元素的下

一个元素,并通过freeNode方法将要删除的元素变成备用链表。

#include 
#include 
#define MAXLENGTH 100
typedef struct{
    int data;
    int cur;
}Component;
typedef Component StaticList[MAXLENGTH];
void init(StaticList arr){
    int i=0;
    for(i=0;i



你可能感兴趣的:(数据结构)