静态链表
来源:互联网 发布:淘宝的返利网 编辑:程序博客网 时间:2024/05/18 23:14
#include<iostream>#include<cstdio>#include<stdlib.h>#include<malloc.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define MAXSIZE 10 using namespace std;typedef int ElemType;typedef int Status;typedef struct{ ElemType data; int cur;}component,SList[MAXSIZE];//生成备用链表 void initSpace(SList& space){ for(int i=0;i<MAXSIZE-1;i++){ space[i].cur=i+1; } space[MAXSIZE-1].cur=0;}int mallocLocation(SList& space){ int position=space[0].cur; if(position){ space[0].cur=space[position].cur; } return position; }void freeSL(SList& space,int k){ space[k].cur=space[0].cur; space[0].cur=k;}void difference(SList& space,int &head){ initSpace(space); head=mallocLocation(space);//生成头节点 int n,m,r=head; scanf("%d%d",&n,&m); for(int i=0;i<n;i++){ int t=mallocLocation(space); scanf("%d",&space[t].data); space[r].cur=t; r=t; } space[r].cur=0; for(int i=0;i<m;i++){ int temp,pre=head; scanf("%d",&temp); r=space[head].cur; while(r){ if(space[r].data==temp)break; pre=r; r=space[r].cur; } if(!r){ int t=mallocLocation(space); space[t].data=temp; space[t].cur=0; space[pre].cur=t; }else{ space[pre].cur=space[r].cur; freeSL(space,r); } }}void Reverse(SList& slist,int head){ int p=slist[head].cur; while(p){ printf("%d ",slist[p].data); p=slist[p].cur; }}int main(){ SList space; int head; difference(space,head); Reverse(space,head); return 0;}
阅读全文
0 0
- 静态链表
- VB静态链表
- 静态链表
- 静态链表
- 静态链表
- 静态链表
- 静态链表
- 静态链表实例
- 静态链表
- 静态链表。实现。
- 静态链表
- 静态链表
- 静态链表例子
- 静态链表模版
- 静态链表
- 【数据结构】静态链表
- 静态链表
- 静态链表
- Jsoup基本使用
- python3.4的安装方法
- 使用GDI验证码
- 路由器
- PAT1103
- 静态链表
- 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)
- modelsim仿真一直卡在loading之解决办法
- IDL中自定义过程与函数关键字参数说明
- Monte Carlo随机模拟
- linux内核调试技巧 dump_stack()
- 【PAT】【Advanced Level】1015. Reversible Primes (20)
- android 之sqlite事务
- 抽象代数学习笔记(6)群与子群