《大话数据结构》

静态链表


其实C语言真是好东西,它具有的指针能力、使得它可以非常容易地操作内存中的地址和数据,这比其他高级语言更加灵活方便。后来的面向对象语言,如]a}a,  C#等,虽不使用指针,但因为启用厂对象引用机制,从某种角度也间接实现了指针的某些作用。但对于一些语言,如Hasie,  Fortran等旱期的编程高级语言,由十没有指针、链表结构按照前面我们的讲法,它就没法实现了。怎么办呢?有人就想出来用数组来代替指针,来描述单链表。真是不得不佩服他们的智慧,我们来看看他是怎么做到的。首先我们让数组的元素都是由两个数据域组成,data和eur。也就是说,数组的每个卜.标都对应一个data和一个curo数据域data ,用来存放数据元素,也就是通常我们要处理的数据;而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的F}标。我们把这种用数组描述的链表叫做静态
链表,这种描述方法还有起名叫做游标实现法。为了我们方便插入数据,我们通常会把数组建立的大一些,以便有一些空闲空间,可以便于插入时不至于溢出


另外我们对数组第一个和最后一个元素作为特殊元素处理,不存数据。我们通常把末被使用的数组尤素称为备用链表。而数组第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的下标;而数组的最后一个元素的cur则存放第一个有数值的元素的阿标,相当十单链表中的头结点作用,当稚个链表为空时,则为 




假设我们已经将数据存入静态链表,比如分别存放着“甲’、“乙”、“丁’、‘戊“己”、“庚”等数据所示这种状态。


此时“甲”这里就存有下一元素“乙”的游标Z.“乙”则存有下一元素“丁”的一「标3。而“庚”是最后一个有值元素,所以它的cur设置为as而最后一个元素的cur则因“甲”是第一有值元素而存有它的下标为1。而第一个元素则因空闲空问的第一个元索下标为7,所以它的cur存有70。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值