#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define MAXSIZE 1000
typedef int ElemType;
typedef int Status;
typedef struct {
ElemType data;
int cur;
}component,SLinkList[MAXSIZE];
int LocateElem_SL(SLinkList S,ElemType e);
void InitSpace_SL(SLinkList *space);
int Malloc_SL(SLinkList *space);
void Free_SL(SLinkList *space,int k);
void difference(SLinkList *space,int *S);
Status ListInsert_SL(SLinkList H,int i,ElemType e);
int main(int argc, const char * argv[]) {
SLinkList p;
return 0;
}
int LocateElem_SL(SLinkList S,ElemType e){
int i=S[0].cur;
while (i&&S[i].data!=e) {
i=S[i].cur;
}
return i;
}
void InitSpace_SL(SLinkList *space){
for(int i=0;i<MAXSIZE-1;++i)
(*space)[i].cur=i+1;
(*space)[MAXSIZE-1].cur=0;
}
int Malloc_SL(SLinkList *space){
/*若备用链表非空,返回分配的结点的下标,否则返回0*/
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;
}
Status ListInsert_SL(SLinkList L,int i,ElemType e)
{
int j, k ,l;
k = MAXSIZE-1; /*获取数组最后一个位置下标*/
j = Malloc_SL(L); /*获取备用链表第一个位置的下标*/
if(j)
{
L[j].data = e; /*将数值赋给数据域data*/
for(l=1;l<=i-1;l++)
k = L[k].cur; /*获取第i个元素之前位置的下标*/
L[j].cur = L[k].cur;
L[k].cur = j; /*cur值之间的重新链接*/
return OK;
}
return ERROR;
}
线性表的静态单链表存储结构
猜你喜欢
转载自blog.csdn.net/qq_40215528/article/details/83052213
今日推荐
周排行