单向链表

简介: 单向链表是一种线性数据结构,每个节点只包含一个指向下一个节点的指针。单向链表的第一个节点称为头节点,最后一个节点称为尾节点。单向链表的特点是只能从前往后遍历,不能倒序遍历。

单向链表是一种线性数据结构,每个节点只包含一个指向下一个节点的指针。单向链表的第一个节点称为头节点,最后一个节点称为尾节点。单向链表的特点是只能从前往后遍历,不能倒序遍历。
单向链表的实现方式有两种:一种是用数组实现,另一种是用指针实现。在用指针实现的单向链表中,每个节点都有一个指向下一个节点的指针,通过指针可以访问链表中的每一个节点。
使用单向链表的场景包括:需要频繁插入和删除元素的数据结构、需要排序的数据结构、需要实现栈和队列等。
以下是一个简单的单向链表实现的 Python 代码示例:

class Node:
def init(self, data):
self.data = data
self.next = None
class LinkedList:
def init(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def print_list(self):
cur_node = self.head
while cur_node:
print(cur_node.data, end=" -> ")
cur_node = cur_node.next
print("None")

示例

linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.print_list()
CopyCopy

在这个示例中,我们定义了一个 Node 类表示链表中的节点,包含一个 data 属性表示节点数据,一个 next 属性表示下一个节点的指针。LinkedList 类表示单向链表,包含一个 head 属性表示链表的头节点。LinkedList 类还实现了 append 方法用于在链表尾部插入节点,以及 print_list 方法用于遍历链表并打印节点数据。

目录
相关文章
|
2月前
【数据结构】单链表之--无头单向非循环链表
【数据结构】单链表之--无头单向非循环链表
|
7月前
|
存储 算法 C语言
【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)
一、链表的概念 二、特点 三、链表的分类 四、单向链表的结构体 命名规范: 二级指针 ❗️注意事项 五、函数实现 1.单链表的打印
【数据结构】之十分好用的“链表”赶紧学起来!(第一部分单向链表)
|
14天前
|
存储
数据结构第二课 -----线性表之单向链表
数据结构第二课 -----线性表之单向链表
|
3月前
|
存储
数据结构 模拟实现LinkedList单向不循环链表
数据结构 模拟实现LinkedList单向不循环链表
35 0
|
3月前
|
存储 Python
如何在Python中实现单向链表和双向链表?
如何在Python中实现单向链表和双向链表?
|
4月前
|
缓存 算法 Java
6.单向链表正确实现方式
6.单向链表正确实现方式
41 1
|
4月前
|
存储 程序员 C语言
链表篇---单向链表的C语言实现
链表篇---单向链表的C语言实现
|
4月前
|
存储 缓存 算法
Algorithms_基础数据结构(02)_线性表之链表_单向链表
Algorithms_基础数据结构(02)_线性表之链表_单向链表
40 0
|
5月前
|
存储 C语言
链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)
在上一篇文章中,我们探索了顺序表这一基础的数据结构,它提供了一种有序存储数据的方法,使得数据的访 问和操作变得更加高效。想要进一步了解,大家可以移步于上一篇文章:探索顺序表:数据结构中的秩序之美 今天,我们将进一步深入,探讨另一个重要的数据结构——链表 链表和顺序表一样,都属于线性表,也用于存储数据,但其内部结构和操作方式有着明显的不同。通过C语言的具体实现,我们将会更加直观地理解它
109 1
链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)
|
5月前
|
存储
队列的学习(一)用数组和链表实现单向队列
队列的学习(一)用数组和链表实现单向队列 队列(Queue)是一种先进先出的数据结构,类似于现实生活中排队的场景。它有两个基本操作:入队(enqueue)和出队(dequeue)。在本文中,我们将介绍如何使用数组和链表来实现单向队列。