静态链表算法

静态链表是一种存储数据的链表结构(定义不加赘述),对于单链表来说,数据域存储数据,指针域存储下一个结点的地址,而需要进行插入操作时,则需要动态的申请新的结点。静态链表也有两个域,我们命名为数据域游标域。数据域用来存放数据,游标域存储下一个未使用结点的下标(红色代表未使用,蓝色代表使用)

 

对于此结构来讲,假设申请的最大结点为Maxsize,且没有使用。则可以使用的结点数为Maxsize-2(除去已使用头结点和未使用头结点)下边进行操作:

插入:简单来说就是从未使用头结点的下一个结点开始,将此结点从未使用的结点中剔除,连接在已使用的头结点之后。举例来说,现在要使用第二个结点,

我们便于理解将1号结点拿出来,具体操作来讲,就是将未使用的头结点的游标域的值修改为下一个未使用的结点,将这个使用的结点连接在已使用的头结点之后。代码如下:

 

 

查询操作:代码如下

删除操作:跟插入操作相类似,删除操作首先将该结点从已使用链表中找到,然后把它从已使用链表中剔除,然后进行头插,插入到未使用链表的头结点之后。。代码如下:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值