Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

DSA 链表

顾名思义,链表 是一种节点相互连接的列表。每个节点包含数据和一个指针。它们的连接方式是每个节点指向内存中下一个节点的位置。

链表

链表由包含某种数据的节点和指向下一个节点的指针或链接组成。

A singly linked list.

使用链表的一个主要优势是,节点可以存储在内存中任何空闲位置,节点不需要像数组元素那样连续存储在一起。链表的另一个好处是,在添加或删除节点时,列表中其他节点不需要移动。


链表与数组

理解链表的最简单方法可能是将链表与数组进行比较。

链表由节点组成,是一种我们自己创建的线性数据结构,不像数组,数组是编程语言中现有的数据结构,我们可以使用它。

链表中的节点存储指向其他节点的链接,但数组元素不需要存储指向其他元素的链接。

注意: 链表和数组如何在内存中存储将在下一页中更详细地解释。

下表比较了链表和数组,以便更好地理解链表是什么。

数组 链表
编程语言中现有的数据结构
内存中固定大小
元素或节点在内存中连续存储在一起(连续的)
内存使用率低
(每个节点只包含数据,没有指向其他节点的链接)
可以直接访问元素或节点(随机访问)
可以在恒定时间内插入或删除元素或节点,无需在内存中进行移位操作。

为了更详细地解释这些差异,下一页将重点介绍链表和数组如何在内存中存储。


DSA 练习

通过练习测试自己

练习

链表中的节点是什么?

Each node in a Linked List 
contains , and a  
to where the next node 
is placed in memory.

开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.