链表数据结构

小夏 科技 更新 2024-02-01

数组的大小是固定的,从数组的开头或中间插入或删除项目的成本很高(其他元素需要移动); 链表在添加或删除元素时不需要移动其他元素。 链表存储一个有序的元素集合,这些元素在内存中不连续放置,每个元素都由一个存储自身的节点和对下一个节点元素的引用组成; 数组连续放置在内存中。 数组可以直接访问任意位置的元素,数组元素的访问时间复杂度为o(1);链表需要从头(header)遍历列表,直到找到所需的元素,链表元素的访问时间复杂度为o(n)。append(item):在列表末尾添加一个新元素insert (position,item):将元素插入到 listRemove(item):从链接列表中删除元素indexof(item):返回链表中元素的索引Removeat(position):从链表中指定位置删除元素 isempty(): 如果链表中没有元素,则返回 true,否则 falsesize(): 返回链表中的元素数tostring(): 输出元素函数的值和索引 linklist() let head=null,length=0; this.append=function(item)else current.next=node } length++ this.insert=function(position,item)else current=current.next index++ console.log(`index of $-s`,-1) return -1 } this.removeat=function(position) }class es6linklist append(item)else current.next=node } this.length++ insert(pos,item)else{ while(index++=0 &&index=0 &&&pos 链表为 null true

要查找的元素 2 位于链表中的位置 2

元素: 7 - 索引: 0 |元素: 1 - 索引: 1 |元素: 2 - 索引: 2 |元素: 9 - 索引: 3 |

链表的长度为 4

元素: 7 - 索引: 0 |元素: 1 - 索引: 1 |元素: 9 - 索引: 2 |

链表的长度为 2

链表是否为空 false

元素:1--索引:0|元素: 9 - 索引: 1 |

您在链表中查找的元素 7 的位置位不存在。

相似文章

    数据结构及算法求解步骤

    每个解决方案都始于一个策略,而算法就是解决编码问题的策略。因此,程序员必须学会设计一种高效的算法,并将该算法转换为正确的 才能完成工作。然而,数据结构和算法中存在许多编码问题,而且大多数时候,这些问题对我们来说都是新的。作为程序员,我们需要将自己培养成自信的问题解决者,他们不会被给定问题的难度吓倒。...

    Python 和数据结构探索列表、字典和集合

    在计算机编程中,数据结构是组织和存储数据的重要方式。Python 编程语言提供了多种内置数据结构,包括列表 字典和集合,它们在处理和操作数据方面起着关键作用。本文将深入探讨这些常见的 Python 数据结构,解释它们的特性 用途和示例。.列表 列表是 Python 中最基本 最灵活的数据结构之一。它...

    编程算法和数据结构简介

    在计算机科学中,编程算法和数据结构是两个核心概念。它们是相辅相成的,算法是解决问题的策略,数据结构是存储和检索数据的有效方式。对于初学者来说,了解两者之间的关系以及如何应用它们至关重要。本文将详细介绍编程算法和数据结构入门的基础知识。.编程算法简介。算法定义 算法是一组用于解决特定问题或完成特定任务...

    数据结构与算法中流行的一系列问题:两指针法和滑动窗口法

    双指针方法是一种有用的策略,用于优化涉及数组和链表搜索的问题的时间和空间复杂性。它使用成对的索引或指针同时遍历两个不同的输入部分,这使我们能够减少操作。此方法有三种变体 合并两个排序的数组。求两个数组的交集。找到两个已排序的墨迹列表的交集。检查一个数组是否是另一个数组的子集。快速排序中的分区过程。从...

    数据结构与算法中的一系列热点问题 循环、二进制查找、分而治之

    解决问题的常用方法是使用循环逐步构建解决方案。此方法有几种变体 以输入为中心的策略 在这种方法中,我们一次处理一个输入,并在循环的每次迭代中构建部分解决方案。以输出为中心的策略 使用这种方法,我们一次向解决方案添加一个输出,并以迭代方式构建解决方案的各个部分。迭代改进策略 这涉及从一些易于访问的近似...