数据结构 静态链表的应用
【摘要】 #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)