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

本文主要是介绍【考研数据结构——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!
}

这篇关于【考研数据结构——C语言描述】第二章 线性表链式存储结构上的基本操作——静态链表的基本操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055306

相关文章

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2