单链表--游标实现
来源:互联网 发布:linux mount 原理 编辑:程序博客网 时间:2024/05/22 00:07
对于一些语言,没有指针,所以用数组是实现链表的一种方式
//链表的游标实现//array数组分两部分,一部分为链表部分,有一个独立头节点,下标为1//另一部分为freelist部分,也有独立的一个节点,下标为0,对于此部分,相当于一个栈//进行malloc操作时,从开头(下标0后)取空间//进行free操作时,被free的数放到开头(下标0后)#define MAXN 10struct node{ int element; int next;};void free(struct node array[],int position){ array[position].next=array[0].next; array[0].next=position;}int malloc(struct node array[]){ int position; position=array[0].next; array[0].next=array[position].next; return position;}int FindpreviousofDelete(struct node array[],int head,int number){ int position; position=head; while(array[array[position].next].element!=number&&array[position].next!=0) position=array[position].next; return position;}int FindpreviousofInsert(struct node array[],int head,int number){ int position=head; while(array[position].next<=number&&array[position].next!=0) position=array[position].next; return position;}void Insert(struct node array[],int head,int number){ int position=malloc(array); if(position==0){ printf("Out of space!\n"); return; } int former=FindpreviousofInsert(array,head,number); array[position].element=number; array[position].next=array[former].next; array[former].next=position;}void Delete(struct node array[],int head,int number){ int position; position=FindpreviousofDelete(array,head,number); if(array[position].next==0){ printf("Not exist!\n"); return; } array[position].next=array[array[position].next].next; free(array,array[position].next);}int main(){ //新建 struct node array[MAXN]; int head=1; array[head].next=0; array[0].next=2; for(int i=2;i<MAXN-1;i++) array[i].next=i+1; array[MAXN-1].next=0; //插入 Insert(array,head,10); //删除 Delete(array,head,10); //查找 //Find(array,head,2); //遍历 //Print(array,head); return 0;}
0 0
- 单链表--游标实现
- 表的游标实现
- sqlserver 游标的实现
- 数组的游标实现
- 不用游标实现遍历
- 游标的实现方法
- 链表游标实现
- SQL游标的实现
- Tab游标,实现fragment滑动,,游标改变
- mysql 游标套游标实现方法
- 单链表的游标实现:插入、删除、查找、打印等功能
- 利用游标实现递归(函数)
- 链表的游标实现?
- oracle 游标实现多重循环
- 利用游标实现加工资
- 示例7 通过游标实现
- 链表的游标实现
- 链表的游标实现
- 毛超帅五.MYSQL______软件开发-数据库【mysql_oracle】
- 外键,导致表创建不了
- eclipse中项目名称修改后部署到tomcat中应用名称仍然是旧的问题解决
- iOS应用架构谈 开篇
- RESTful 详解
- 单链表--游标实现
- CSS 混合布局
- 合并两张bitmap ANDROID
- 求水仙花数
- UITextField 详解
- Java设计模式之代理模式(动态代理-基础篇)
- 【解决方案】Command failed due to signal: Segmentation fault: 11
- iOS应用架构谈 view层的组织和调用方案
- servlet向客户端发送数据(PrintWriter ,ServletOutputStream)