数据结构 静态链表的应用
【摘要】 #include <stdio.h>#include <stdlib.h>#include <iostream.h> #define MAXSIZE 100#define OK 1#define ERROR 0#define OVERFLOW -2 typedef char ElemType; typedef struct{ Ele...
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <iostream.h>
-
-
#define MAXSIZE 100
-
#define OK 1
-
#define ERROR 0
-
#define OVERFLOW -2
-
-
typedef char ElemType;
-
-
-
typedef struct
-
{
-
ElemType data;
-
int cur;
-
}component, SLinkList[MAXSIZE];
-
-
-
void InitSpace_SL(SLinkList &space)
-
{
-
int i;
-
for (i=0; i<MAXSIZE-1; i++)
-
{
-
space[i].cur = i+1;
-
}
-
space[MAXSIZE-1].cur = 0;
-
}
-
-
int Malloc_SL(SLinkList &space)
-
{
-
int i;
-
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;
-
}
-
-
void difference(SLinkList &space, int &S)
-
{
-
int r,k,i,j,m,n,p;
-
char b;
-
InitSpace_SL(space);
-
S = Malloc_SL(space);
-
r = S;
-
scanf("%d%d",&m,&n);
-
for (j=1; j<=m; ++j)
-
{
-
i = Malloc_SL(space);
-
scanf("%d",&space[i].data);
-
space[r].cur = i;
-
r = i;
-
}
-
space[r].cur = 0;
-
-
for (j=1; j<=n; ++j)
-
{
-
scanf("%d",&b);
-
p = S;
-
k = space[S].cur;
-
while (k != space[r].cur && space[k].data != b)
-
{
-
p = k;
-
k = space[k].cur ;
-
}
-
if (k == space[r].cur )
-
{
-
i = Malloc_SL(space);
-
space[i].data = b;
-
space[i].cur = space[r].cur ;
-
space[r].cur = i;
-
}
-
else
-
{
-
space[p].cur = space[k].cur ;
-
Free_SL(space,k);
-
if (r == k)
-
{
-
r = p;
-
}
-
}
-
}
-
}
-
-
void print_SL(SLinkList space)
-
{
-
int i = space[1].cur;
-
while (i)
-
{
-
printf("%d ",space[i].data);
-
i = space[i].cur;
-
}
-
printf("\n");
-
}
-
-
int main()
-
{
-
SLinkList space;
-
int S;
-
difference(space, S);
-
print_SL(space);
-
return 0;
-
}
文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq523176585/article/details/17249013
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)