《算法基础》——第3章 链表 3.1 基本概念

简介:

本节书摘来自华章计算机《算法基础》一书中的第3章,第3.1节,作者:(美)罗德·斯蒂芬斯(Rod Stephens)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第3章 链表

链表可能是程序员会建立的最简单的数据结构。然而,用来构建它们所需用到的某些概念也会被用来构建这本书里描述的最复杂的数据结构。要使用一个链表,除了了解查找,插入和删除单元格的方法以外,还需要了解单元格和链接。可以使用这些相同的概念来构建复杂的网络、易被混淆的树和平衡树。
本章说明了为使用链表所需要掌握的方法。后面的章节中(特别是第4章、第5章、第8章和第10~14章)会重温这些方法。

3.1 基本概念

链表是由通常被称为单元格的对象构建而成。单元格类包含链表必须存储的数据和到另一个单元格的链接。该链接是一个简单的引用或是指到另一个单元格类对象的指针。通常单元格的指针域被称为Next。
例如,下面的代码显示了在C#中的整数单元格(IntegerCell)类的定义。该单元格包含一个整数值和一个指向链表中下一个整数单元格对象的指针:
screenshot

链表通常用图来表示,用小方格代表单元格并用箭头代表链接。
本书用含有X的小方格来代表一个没有指向单元格的链接。(在编程语言中,对应的链接指针没有值、或者是空指针、或者其他一些特定语言的值,表示该指针没有指向任何内容。)
除了链表本身,一个程序需要一个指向链表的变量,这样便于代码能够找到该链表。往往这个变量被命名为top,以表明它表示该链表的顶端。top变量可以是一个单元格类的变量,也可以是一个指向链表第一个单元的指针。
图3-1显示了含有数字31、72、47和9的两个链表。在靠上面的那个链表里,程序里有一个称为top的变量,它是向该链表第一个单元格的指针。在靠下面的链表里,程序里的top变量是该链表中的第一个单元格。这两个链表都以一个包含X的小方格结尾,这个小方格表示一个空指针。

screenshot


如果数据中的项会随着时间变化而增加或减少时,链表是一种很好的存储方式。若要添加一个新的单元格,只需要在链表的开头或结尾添加该单元格。与此相反,一个数组的大小是固定的,所以很难扩大数组来实现添加更多的项。
以下各节将介绍一些可以用来操纵链表的算法。其中许多算法是通过展示链表在某操作被执行前和执行后的状态来进行描述说明的。

相关文章
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
941 1
|
机器学习/深度学习 算法 数据可视化
近端策略优化算法PPO的核心概念和PyTorch实现详解
本文深入解析了近端策略优化(PPO)算法的核心原理,并基于PyTorch框架实现了完整的强化学习训练流程。通过Lunar Lander环境展示了算法的全过程,涵盖环境交互、优势函数计算、策略更新等关键模块。内容理论与实践结合,适合希望掌握PPO算法及其实现的读者。
1874 2
近端策略优化算法PPO的核心概念和PyTorch实现详解
|
存储 机器学习/深度学习 算法
C 408—《数据结构》算法题基础篇—链表(下)
408考研——《数据结构》算法题基础篇之链表(下)。
764 30
|
存储 算法 C语言
C 408—《数据结构》算法题基础篇—链表(上)
408考研——《数据结构》算法题基础篇之链表(上)。
1097 25
|
存储 监控 算法
员工电脑监控系统中的 C# 链表算法剖析-如何监控员工的电脑
当代企业管理体系中,员工电脑监控已成为一个具有重要研究价值与实践意义的关键议题。随着数字化办公模式的广泛普及,企业亟需确保员工对公司资源的合理利用,维护网络安全环境,并提升整体工作效率。有效的电脑监控手段对于企业实现这些目标具有不可忽视的作用,而这一过程离不开精妙的数据结构与算法作为技术支撑。本文旨在深入探究链表(Linked List)这一经典数据结构在员工电脑监控场景中的具体应用,并通过 C# 编程语言给出详尽的代码实现与解析。
377 5
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
416 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
存储 算法 物联网
解析局域网内控制电脑机制:基于 Go 语言链表算法的隐秘通信技术探究
数字化办公与物联网蓬勃发展的时代背景下,局域网内计算机控制已成为提升工作效率、达成设备协同管理的重要途径。无论是企业远程办公时的设备统一调度,还是智能家居系统中多设备间的联动控制,高效的数据传输与管理机制均构成实现局域网内计算机控制功能的核心要素。本文将深入探究 Go 语言中的链表数据结构,剖析其在局域网内计算机控制过程中,如何达成数据的有序存储与高效传输,并通过完整的 Go 语言代码示例展示其应用流程。
366 0
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
存储 缓存 算法
经典算法之链表篇(三)
经典算法之链表篇(三)
364 4

热门文章

最新文章