C语言实现静态链表
本文实例为大家分享了C语言实现静态链表的具体代码,供大家参考,具体内容如下
注意事项:
1、这里用k申请空间,i遍历空间。
2、静态链表是利用游标来模拟指针,把固定分配的内存分成备用链表和链表两大块,在利用自制的malloc和free函数申请释放备用空间时,实现离散存储。
3、基本操作和动态链表实际上差不多,不过一个是利用p=p->next一个是使用i=L[i].cur来实现指针的后移。
4、初始化链表时,链表只有最后一个空间的cur是0,意味是头指针,并没有任何分配的空间。备用链表的头指针是空间的第一个位置,最后一个指针的cur也是0。0在静态链表中也意味着NULL;
5、使用动态链表思维,cur成员可以看成指针,里面存的哪个单元的下标,就相当于指向哪个单元。
#include#include typedefstruct { intdata; intcur; }component,SLinkList[100]; intMalloc(SLinkListspace) { inti=space[0].cur; if(i) space[0].cur=space[i].cur; returni; } voidFree(SLinkListspace,intk) { space[k].cur=space[0].cur; space[0].cur=k; } voidCreat(SLinkListL) { inti; L[99].cur=0; for(i=0;i<98;i++) L[i].cur=i+1; L[98].cur=0; } intListLength(SLinkListL) { inti=0,k=L[99].cur; while(k) { k=L[k].cur; i++; } returni; } voidInsert(SLinkListL,intval,intindex) { inti=99,k,n; k=Malloc(L); if(k) { L[k].data=val; for(n=1;n 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。