链表
# 链表
# 4.1可变数组
数据结构线性表的顺序结构
4.1.1
typedef struct { int *array; int size; }Array; Array arrayCreate(int arrraySize); void arrayFree(Array *a); int arraySize(const Array *a); //封装类型属性 int* arrayAt(Array *a,int index); //返回指针 *arrayAt(&a,0) = 10; 可以直接对指定位置赋值 /* arrayAt()可以使用 arrayGet()和arraySet()一对方法来替换 void arrayGet(Array *a,int index); void arraySet(Array *a,int index,int value); */ void arrayInflate(Array *a, int moreSize); //改变数组大小 重新申请空间 并将原始数据拷贝 //按照block的大小增长 int* arrayAt(Array *a, int index) { if(index >= a->size) { arrayInflate(a,(index/BLOCK_SIZE+1)*BLOCK_SIZE-a->size); } return &(a->array[index]); }
# 4.2链表
数据结构线性表的链式结构
4.2.1
typedef struct LNode{ int value; struct LNode *next; }Linklist; int initList(Linklist *L); void creatListHead(Linklist *L); void createListTail(Linklist *L): int lengthList(const Linklist *L); int getElem(const Linklist *L, int i, int *e); //查 int insertList(Linklist *L, int i, int e); //增 int deleteList(Linklist *L, int i, int *e); //删 int updateList(Linklist *L, int i, int *e); //改 int freeList(Linklist *L); int displayList(const Linklist *L);
上次更新: 2023/11/19, 12:55:48