1. 数据结构篇-线性表

线性表、链式结构、单链表、循环链表、双向链表

在这里插入图片描述

线性表特性:

0个或多个元素的有限序列(数组),元素直接的关系为前驱后继,可以快速的存取任一位置的元素。
在这里插入图片描述

链式结构

单链表:

为解决插入和删除时需要移动大量元素。链式结构中,除了要存储元素信息外,还要存储后继元素的内存地址。存储元素信息的域又称为指针域,指针域中存储的信息称做指针或链,这两部分组成了元素ai的存储映射称为节点。n个结点链组成一个链表,即为线性表的链式存储结构,又因为链式结构中只包含一个指针,所以称为单链表。
在这里插入图片描述

在这里插入图片描述第一个存储位置叫头指针。单链表第一个结点前附设一个结点称为头结点。
在这里插入图片描述

1.获得单链表第i个数据的算法思路:

1.声明一个结点first指向链表第一个结点,初始化j从1开始;
2.当j<i时,就遍历链表,让first的指针向后移动,不断指向下一结点,j累加1;
3.若到链表末尾P为空,则说明第i个元素不存在;
4.否则查找成功,返回结点P的数据。

2.单链表第i个数据插入结点的算法思路:

1.声明一结点P指向链表第一个结点,初始化j从1开始;
2.当j<i时,就遍历链表,让P的指针向后移动,不断指向下一结点,j累加1;
3.若到链表末尾P为空,则说明第i个元素不存在;
4.否则查找成功,在系统中生成一个空结点s;
5.将数据元素e赋值给s->data;
6.单链表的插入标准语句s->next=p->next; p->next=s;
7.返回成功。

在这里插入图片描述

3.单链表整表删除的算法思路如下:

1.声明一结点P和q;
2.将第一个结点赋值给P;
3.循环:
♦将下一结点赋值给q;
♦释放p;
♦将q赋值给p。

4.单链表整表创建的算法思路:

1.声明一结点P和计数器变量i;
2.初始化一空链表L;
3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表;
4.循环:
♦生成一新结点赋值给P;
♦随机生成一数字赋值给P的数据域p->data;
♦将p插入到头结点与前一新结点之间。

总结

在这里插入图片描述

静态链表

静态链表对象结构:一个data存储对象、一个别用链表、另外有一个cur记录游标。
在这里插入图片描述

以单项链表为例,取消了定义顺序存储,所有的对象只需要在默认分配的内存空间内,解决了对象插入删除需要移动太多对象的缺点,但同时带来了链表长度难以确认,以及顺序结构随机存储的特性。
插入元素:调用malloc()方法申请空闲下标,如下图,获取头元素记录的空闲下标,同时还要把下一个空闲的下标8放入头元素的cur。当下一位置数据为空,cur用0表示。
在这里插入图片描述

从i前插入元素:其实意思就是,你花钱买了个一个i的位置站住,而原始i位置上的元素让你挤到了原本头元素中空闲的下标位置。
在这里插入图片描述
删除k元素:例如删除k位置的元素,调用free方法释放下标,把k的cur改为当前头元素中的cur,将k放入备用链表中,而k元素的下标要放入头元素中的cur。
在这里插入图片描述

个人理解:其实静态链表就是一个打乱顺序的单项链表,而每次删减元素不需要顺序移动元素。

循环链表

循环链表,见名识意是由单项链表改进的方案,在头节点、尾节点建立关系,尾部节点有指针指向头节点,从而使整个链表为一个闭环。任意一个节点可作为开始节点,来循环整个列表,终止条件为:判断循环的当前节点中下一指针是否为开始节点(避免死循环)。
在这里插入图片描述

双向链表

双向链表的对象结构有所变化,每个元素需要记录当前对象、上一节点(prior)指针和下一节点(next)指针。
在循环链表的基础上,为每个对象添加其上一元素所在位置,而头指针需要更换为尾部节点的指针。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值