【考研数据结构——C语言描述】第二章 线性表链式存储结构上的基本操作——静态链表的基本操作

25计算机考研,数据结构知识点整理(内容借鉴了王道408+数据结构教材),还会不断完善所整理的内容,后续的内容也会不断更新(可以关注),若有错误和不足欢迎各位朋友指出!

目录

 

1.初始化 

1.1算法描述

2.分配结点空间

2.1算法描述

3.回收结点空间

3.1算法描述


静态单链表的基本操作包括初始化、为结点分配空间和回收已释放结点空间,算法描述如下。 

1.初始化 


所谓初始化操作,是指将静态单链表初始化为一个备用静态单链表。设space为静态单链表存储空间的首地址,av为备用静态单链表的头指针,其初始化算法如算法2.18所示。 

1.1算法描述

void initial(StaticList space ,int *av)
{
 int k;
 space[0].cursor=-1;  /*设置已用静态单链表的头指针指向space空间位置0,space[0]相当于头结点*/
 for(k=l;k<Maxsize-1;k++)spacelk].cursor=k+1;  /*连链*/
 space[Maxsize-1].cursor=-1;/*标记链尾*/
 *av=1;/*设置备用静态单链表的头指针初值*/
} /* initial */

注意:已用空间头指针此时可视为已用静态单链表的头结点,备用空间头指针av指向备用静态单链表中的第一个结点。

2.分配结点空间


对系统而言,对使用者面言,相当于申请到了一个可用的新结点。在备用静态单链表中分配结点空间相当于在该链表中减少(删除)一个结点。

2.1算法描述

int getnode(StaticList space ,int * av)
/*从备用静态单链表摘下一个结点空间,分配给待插入静态链表中的元素*/
{  int i;
   j=*av;
   *av=space[*av].cursor;
   return i;
}

3.回收结点空间


对系统而言,备用静态单链表回收空闲结点相当于在该链表中增加一个结点;对使用者面言,相当于释放了一个不用的结点。

3.1算法描述

void freenode ($taticList space,int *av , int k)
/*从space备用静态单链表中回收序号为k的结点,av为备用静态单链表的头指针*/
{
  space[k].crusor= *av;
  *av=k!
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值