静态链表系列操作
来源:互联网 发布:游戏常用的算法 编辑:程序博客网 时间:2024/06/15 20:54
静态链表
#include <iostream>#include <cstdlib>using namespace std;#define maxn 105typedef struct{ int data; int cur;}stackLinkList;void init(stackLinkList *L){ for(int i=0;i<maxn-1;i++) L[i].cur=i+1; L[maxn-1].cur=0;}void input(stackLinkList *L){ int i=1; int x; cin>>x; while(x!=-1) { L[i++].data=x; cin>>x; } L[0].cur=i; i--; L[i].cur=0; L[maxn-1].cur=1;}int malloc_SLL(stackLinkList *L){ int i=L[0].cur; if(L[0].cur) L[0].cur=L[i].cur; return i;}void Free_SLL(stackLinkList *L,int k){ L[k].cur=L[0].cur; L[0].cur=k;}void ListInsert(stackLinkList *L,int pos,int e){ int k=maxn-1; int j=malloc_SLL(L); if(pos<1||pos>L[0].cur) return ; if(j) { L[j].data=e; for(int u=1;u<=pos-1;u++) k=L[k].cur; L[j].cur=L[k].cur; L[k].cur=j; }}void ListDelete(stackLinkList *L,int pos){ if(pos<1||pos>=L[0].cur) return ; int k=maxn-1; for(int u=1;u<=pos-1;u++) k=L[k].cur; int j=L[k].cur; L[k].cur=L[j].cur; Free_SLL(L,j);}void print(stackLinkList *L){ int i=1; while(i!=0) { cout << L[i].data << ' '; i=L[i].cur; } cout << endl;}int main(){ stackLinkList sl[maxn]; init(sl); input(sl); ListInsert(sl,3,999); print(sl); ListInsert(sl,3,999); print(sl); ListDelete(sl,3); print(sl); ListDelete(sl,3); print(sl); return 0;}
阅读全文
0 0
- 静态链表系列操作
- 作业系列静态链表
- 作业系列静态链表
- 静态链表--简单操作
- 静态链表的一些操作
- 静态链表的操作实现
- 静态链表的所有基本操作
- 静态链表的基本操作
- 静态链表初始化及相关操作
- 静态链表的插入操作
- 静态链表的基本操作实现
- 静态链表的基本操作实现
- 静态链表的创建以及基本操作
- 静态链表的实现与操作(C语言实现)
- c语言实现静态链表的基本操作
- 数据结构-静态链表及其插入删除操作
- 静态链表的基本操作及其应用(实验2.3)
- 静态链表的基本操作及其应用(实验2.3)
- Tomcat学习--tomcat配置使用log4j
- hdu 1711 Number Sequence kmp模式匹配
- APUE 第14章 高级I/O
- 知识整理
- hdu3371 Connect the Cities
- 静态链表系列操作
- 第三周项目3-求集合并集
- APUE 第15-16章 进程间通信
- 机器学习-python的工作目录
- MATLAB修改默认工作路径
- 包含min函数的栈
- Java 从网页指定url获取图片并压缩到本地
- spring
- PyTorch基本用法(七)——模型的保存与加载