静态链表的应用
来源:互联网 发布:艹女人是什么感受 知乎 编辑:程序博客网 时间:2024/06/06 00:43
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int data;
int cur;
}list;
typedef struct
{
list a[100];
int av;
}link;
void init(link *l)
{
int i;
for(i=0;i<100;i++)
l->a[i].cur=i+1;
l->a[99].cur=0;
l->av=1;
}
int assign(link l)
{
int i;
i=l.av;
l.av=l.a[i].cur;
return i;
}
void freenode(link l,int pos)
{
l.a[pos].cur=l.av;
l.av=pos;
}
void insert(link *l,int i,int e)
{
int j,k,x;
k=l->av;
l->av=l->a[k].cur;
l->a[k].data=e;
j=l->a[0].cur;
for(x=1;x<i-1;x++)
j=l->a[j].cur;
l->a[k].cur=l->a[j].cur;
l->a[j].cur=k;
}
void delete(link *l,int i,int *e)
{
int j,k,x;
j=l->a[0].cur;
for(x=1;x<i-1;x++)
j=l->a[j].cur;
k=l->a[j].cur;
l->a[j].cur=l->a[k].cur;
l->a[k].cur=l->av;
*e=l->a[k].data;
l->av=k;
}
void print(link l,int n)
{
int j,k;
k=l.a[0].cur;
for(j=1;j<=n;j++)
{
printf("%d ",l.a[k].data);
k=l.a[k].cur;
}
printf("/n");
}
void main()
{
link l;
int len,i;
int pos;
int e;
int b[]={1,2,3,4,5,6,7,8,9};
len=sizeof(b)/sizeof(b[0]);
init(&l);
for(i=1;i<=len;i++)
insert(&l,i,b[i-1]);
printf("静态链表中的元素为:/n");
print(l,len);
printf("输入要插入的元素及位置/n");
scanf("%d%d",&e,&pos);
insert(&l,pos,e);
printf("插入元素后静态链表中的元素为/n");
print(l,len+1);
printf("输入要删除的位置/n");
scanf("%d",&pos);
delete(&l,pos,&e);
printf("删除的元素是");
printf("%d/n",e);
printf("删除后链表元素为");
print(l,len);
}
- 静态链表的应用
- 静态链表的应用
- 数据结构 静态链表的应用
- 静态链表的简单应用
- 静态链表的基本操作及其应用(实验2.3)
- 静态链表的基本操作及其应用(实验2.3)
- 静态字段的应用
- 静态的应用
- 静态的应用
- 静态的应用
- Java静态的应用
- 静态成员的应用
- 静态变量的应用
- 静态的应用
- 静态的应用
- VC静态库的应用
- iphone静态库的应用
- 静态局部变量的应用
- 《高质量C++编程指南》读后笔记五
- linux初学讲座
- ARM学习笔记
- 学习C++
- C++友元(Friends)总结
- 静态链表的应用
- 第一篇
- [转]CSS布局口诀,学ccs不再难
- 学java
- 学—习—解—惑—贴
- 好的软件人员一生必看的六十本书
- 优秀程序员应具备的素质
- 计算机网络原理知识点
- 说说我的代码格式习惯之C/C++篇