数据结构之静态链表
来源:互联网 发布:mac eclipse 编辑:程序博客网 时间:2024/04/30 04:11
#include <iostream>
using namespace std;
#define MAXSIZE 1000
typedef struct DuLNode
{
char date;
int cur;
}component, SLinkList[MAXSIZE];
void InitSpace_SL(SLinkList&space)//将一维数组space中各分量连接成一个备用链表,space[0].cur为头指针
{
int i;
for (i = 0; i < MAXSIZE - 1; ++i)
space[i].cur = i + 1;
space[MAXSIZE - 1].cur = 0;
}
int MaLLoc_SL(SLinkList&space)//若备用空间链表非空,则返回分配的结点下标,否则返回0
{
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)//将下标为k的空闲结点回收到备用链表
{
space[k].cur = space[0].cur;
space[0].cur = k;
}
void difference(SLinkList&space, int &S)
{
int r;
InitSpace_SL(space);
S = MaLLoc_SL(space);
r = S;
int m, n;
cout << "请输入A和B元素的个数:" << endl;
cin >> m >> n;
int i, j;
cout << "请输入A的元素值:" << endl;
for (j = 1; j <= m; ++j)
{
i = MaLLoc_SL(space);
cin >> space[i].date;
space[r].cur = i;
r = i;
}
space[r].cur = 0;
int b, p, k;
cout << "请输入B的元素:" << endl;
for (j = 1; j <= n; ++j)
{
cin >> b;
p = S;
k = space[S].cur;
while (k != space[r].cur&&space[k].date != b)
{
p = k;
k = space[k].cur;
}
if (k == space[r].cur)
{
i = MaLLoc_SL(space);
space[i].date = 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 display(SLinkList &space,int &S)
{
int i;
i = S;
while (space[i-1].cur)
{
cout << space[i+1].date<<" ";
i++;
}
cout << endl;
}
int main()
{
SLinkList space;
InitSpace_SL(space);
int S;
difference(space, S);
display(space,S);
system("pause");
return 0;
}
using namespace std;
#define MAXSIZE 1000
typedef struct DuLNode
{
char date;
int cur;
}component, SLinkList[MAXSIZE];
void InitSpace_SL(SLinkList&space)//将一维数组space中各分量连接成一个备用链表,space[0].cur为头指针
{
int i;
for (i = 0; i < MAXSIZE - 1; ++i)
space[i].cur = i + 1;
space[MAXSIZE - 1].cur = 0;
}
int MaLLoc_SL(SLinkList&space)//若备用空间链表非空,则返回分配的结点下标,否则返回0
{
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)//将下标为k的空闲结点回收到备用链表
{
space[k].cur = space[0].cur;
space[0].cur = k;
}
void difference(SLinkList&space, int &S)
{
int r;
InitSpace_SL(space);
S = MaLLoc_SL(space);
r = S;
int m, n;
cout << "请输入A和B元素的个数:" << endl;
cin >> m >> n;
int i, j;
cout << "请输入A的元素值:" << endl;
for (j = 1; j <= m; ++j)
{
i = MaLLoc_SL(space);
cin >> space[i].date;
space[r].cur = i;
r = i;
}
space[r].cur = 0;
int b, p, k;
cout << "请输入B的元素:" << endl;
for (j = 1; j <= n; ++j)
{
cin >> b;
p = S;
k = space[S].cur;
while (k != space[r].cur&&space[k].date != b)
{
p = k;
k = space[k].cur;
}
if (k == space[r].cur)
{
i = MaLLoc_SL(space);
space[i].date = 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 display(SLinkList &space,int &S)
{
int i;
i = S;
while (space[i-1].cur)
{
cout << space[i+1].date<<" ";
i++;
}
cout << endl;
}
int main()
{
SLinkList space;
InitSpace_SL(space);
int S;
difference(space, S);
display(space,S);
system("pause");
return 0;
}
0 0
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构:线性表之静态链表
- 数据结构笔记之静态链表
- 《大话数据结构》之静态链表
- 数据结构之静态链表小结
- 数据结构封装之《StaticList静态链表》
- 数据结构封装之《StaticList静态链表》
- 数据结构之静态查找表
- 【数据结构】静态链表
- 数据结构:静态链表
- 数据结构-静态链表
- 【数据结构】静态链表
- 数据结构:静态链表
- 数据结构:静态链表
- 校友会攻略
- 数据结构之单链表
- swift控件代码
- 【IOS 开发学习总结-OC-34】★★文件 I/O——NSFileManager 管理文件和目录
- 原子性和可见性
- 数据结构之静态链表
- UI高级第五课 网络通信——iOS学习连载33
- Ios66详解之地图定位失败错误信息处理
- 省市区3个tableView联动实现
- 手机应用推荐
- Python学习之正则表达式
- strcpy、memcpy、memmove的区别
- laravel 5.0 artisan 命令列表(中文简体)
- GestureRecognizer手势