IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> List 抽象数据类型(ADT) -> 正文阅读

[数据结构与算法]List 抽象数据类型(ADT)

列表是一种常见的 ADT,用于保存有序数据,具有附加数据项、删除数据项、搜索数据项是否存在以及打印列表等操作。

List ADT 常见操作

相关操作描述
Append(list, x)Inserts x at end of list
Prepend(list, x)Inserts x at start of list
InsertAfter(list, w, x)Inserts x after w
Remove(list, x)Removes x
Search(list, x)Returns item if found, else returns null
Print(list)Prints list’s items in order
PrintReverse(list)Prints list’s items in reverse order
Sort(list)Sorts the lists items in ascending order
IsEmpty(list)Returns true if list has no items
GetLength(list)Returns the number of items in the list

1. Singly-linked lists

1.1 Singly-linked lists 注意的点

单链表是一种用于实现列表 ADT 的数据结构,其中每个节点都有数据和指向下一个节点的指针。

列表结构通常具有指向列表的第一个节点和最后一个节点的指针。

单链表的第一个节点称为head,最后一个节点称为tail。

单链表是一种位置列表:其中元素包含指向列表中下一个和/或前一个元素的指针的列表。

注:单链表中的RemoveAfter 操作,如果移除的是空值,则移除单链表的head值。

例:arr = 3, 57, 28, 40

ListRemoveAfter(arr, null)

操作之后的结果: 57, 28, 40

2. Array-based lists

2.2 Array-based lists 注意的点

基于数组的列表是使用数组实现的列表 ADT。基于数组的列表支持常见的列表 ADT 操作,例如追加、前置、插入后、删除和搜索。

相关操作与List 的抽象类型一致,在许多编程语言中,数组具有固定的大小。基于数组的列表实现将根据需要随着元素数量的变化动态分配数组

如果在数组后面添加元素时,数组没有可以分配的空间,那么数组的allocationSize会增长之前的两倍。

例如:

allocationSize = 5
length = 5

arr = [10,20,30,5,40]

在arr后面添加元素,由于没有足够的分配空间,allocationSize会变为10。

对于数组来说,指定位置插入元素和删除元素会导致指定位置之后的元素前移或者后移,所以插入和删除的最坏情况时间复杂度是 O(N)。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:17:09  更:2022-02-04 11:19:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 17:22:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码