数据结构静态链表-SLinkList 参考书:《数据结构(C语言)》作者:严蔚敏
如果发现错误,请帮忙指正,谢谢。
转载请注明@author vaneng
SLinkList.h
SLinkList.c
如果发现错误,请帮忙指正,谢谢。
转载请注明@author vaneng
SLinkList.h
/*静态链表:首先它是个数组,这个数组相当于一个块可以由你自由支配的内存空间
*这块内存空间的首地址是SLinkList[0]
*每个链表需要保存的只是它头结点在这个数组是第几个元素就可以了。
*所有的内存分配和回收都是头结点的下一个进行操作
*@author vaneng
*/
#define MAXSIZE 100
typedef int ElemType;
typedef struct{
ElemType data;
int cur;
}component, SLinkList[MAXSIZE];
void initSpace_SL(SLinkList space);
int malloc_SL(SLinkList space);
SLinkList.c
/* author vaneng*/
#include "SLinkList.h"
void initSpace_SL(SLinkList space){
int i;
for(i = 0; i< MAXSIZE; i++){
(space+i)->data = 0;
(space+i)->cur = i+1;
}
(space+MAXSIZE - 1)->cur = 0;
}
int malloc_SL(SLinkList space){
int i = space[0].cur;
if(space[0].cur) space[0].cur = space[i].cur;
return i;
}
void Free_SL(SLinkList space, int k){
space[k].cur = space[0].cur;
space[0].cur = k;
}