使用python实现数组、链表、队列、栈的方法

  • Post category:Python

使用Python实现数组、链表、队列、栈的方法

在Python中,可以使用列表(list)来实现数组、链表、队列、栈等数据结构。本攻略将详细介绍如何使用Python实现这些数据结构,包括它们的定义、创建、访问、修改等操作。

数组

在Python中,可以使用列表来实现数组。列表是一种有序的可序列,可以包含任意类型的元素。以下是Python数组的定义和创建方式:

# 定义一个空数组
my_array = []

# 定义一个包含元素的数组
my_array = [1, 2, 3, 4, 5]

在上面的示例代码中,我们定义了一个空数组和一个包含元的数组。数组的元素可以是任意类型,包括数字、字符串、布尔值等。

数组的访问

可以使用下标(索引)来访问数组中的元素。在Python中,下标从0开始计数。以下是一个示例代码,演示如何访问数组中的元素:

# 访问数组中的元素
my_array = [1, 2, 3, 4, 5]

# 访问第一个元素
print(my_array[0]) # 输出1

# 访问最后一个元素
print(my_array[-1]) # 输出5

在上面的示例代码中,我们使用下标访问了数组my_array中的元素。首先,我们使用[0]访问了第一个元素;接着,我们使用[-1]访问了最后一个元素。

数组的修改

可以使用下标来修改数组中的元素。以下是一个示例代码,演示如何修改数组中的元素:

# 修改数组中的元素
my_array = [1, 2, 3, 4, 5]

# 修改第一个元素
my_array[0] = 6

# 修改最后一个元素
my_array[-1] = 7

# 输出修改后的数组
print(my_array) # 输出[6, 2, 3, 4, 7]

在上面的示例代码中,我们使用下标修改了数组my_array中的元素。首先,使用[0]将第一个元素修改为6;接着,使用[-1]将最后一个元素修改为7。

链表

在Python中,可以使用类来实现链表。链表是一种有序的线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。以下是Python链表的定义和创建方式:

# 定义链表节点类
class ListNode:
    def __init__(, val=0, next=None):
        self.val = val
        self.next = next

# 创建链表
my_list = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))

在上面的示例代码中,我们定义了一个链表类ListNode,包含一个值val和一个指向下一个节点的指针next。接着,我们使用链表节点类创建了一个包含5个节点的链表my_list

链表的访问

可以使用循环遍历链表的节点,并访问每个节点的值。以下是一个示例代码,演示如何访问链表中的元素:

# 访问链表中的元素
my_list = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))

# 遍历链表
cur = my_list
while cur:
    print(cur.val)
    cur = cur.next

在上的示例代码中,我们使用循环遍历链表my_list中的节点,并访问每个节点的值。首先,我们将当前节点cur初始化为链表的头节点;接着,我们使用循环遍历链表中的每个节点,并使用cur.val访问每个节点的值;最后,我们将当前节点cur更新为下一个节点,直到遍历完整个链表。

链表的修改

可以使用循环遍历链表中的节点,并修改每个节点的值。以下是一个示例代码,演示如何修改链表中的元素:

# 修改链表中的元素
my_list = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))

# 遍历链表
cur = my_list
while cur:
    cur.val *= 2
    cur = cur.next

# 输出修改后的链表
cur = my_list
while cur:
    print(cur.val)
    cur = cur.next

在上面的示例代码中,我们使用循环遍历链表my_list中的节点,并将每个节点的值乘以2。首先,我们将当前节点cur初始化为链表的头节点;接着,我们使用循环遍历链表中的每节点,并使用cur.val *= 2将每个节点的值乘以2;最后,我们将当前节点cur更新为下一个节点,直到遍历完整个链表。最后,我们再次遍历链表,并输出修改后的每个节点的值。

队列

在Python中,可以使用列表来实现队列。队列是一种先进先出(FIFO)的数据结构,可以在队添加元素,在队头删除元素。以下是Python队列的定义和创建方式:

# 定义一个空队列
my_queue = []

# 在队尾添加元素
my_queue.append(1)
my_queue.append(2)
my_queue.append(3)

# 在队头删除元素
my_queue.pop(0)

在上面的示例代码中,我们定义了一个空队列my_queue,并使用append方法在队尾添加了3个元素。接着,我们使用pop(0)方法在队头删除了第一个元素。

队列的访问

可以使用循环遍历队列中的元素,并访问每个元素的值。以下是一个示例代码,演示如何访问队列中的元素:

# 访问队列中的元素
my_queue = [1, 2, 3]

# 遍历队列
for i in my_queue:
    print(i)

在上面的示例代码中,我们使用循环遍历队列my_queue中的元素,并访问每个元素的值。首先,我们使用for循环遍历队列中的每个元素;接着,我们使用i变量访问每个元素的值,并使用print函数输出。

队列的修改

可以使用append方法在队尾添加元素,并使用pop(0)方法在队头删除元素。以下是一个示例代码,演示如何修改队列中的元素:

# 修改队列中的元素
my_queue = [1, 2, 3]

# 在队尾添加元素
my_queue.append(4)

# 在队头删除元素
my_queue.pop(0)

# 输出修改后的队列
print(my_queue) # 输出[2, 3, 4]

在上面的示例代码中,我们使用append方法在队尾添加了一个元素,并使用pop(0)方法在队头删除了第一个元素。最后,我们使用print函数输出修改后的队列。

在Python中,可以使用列表来实现栈。栈是一种后进先出(LIFO)的数据结构,可以在栈顶添加元素,在栈顶删除元素。以下是Python栈的定义和创建方式:

# 定义一个空栈
my_stack = []

# 在栈顶添加元素
my_stack.append(1)
my_stack.append(2)
my_stack.append(3)

# 在栈顶删除元素
my_stack.pop()

在上面的示例代码中,我们定义了一个空栈my_stack,并使用append方法在栈顶添加了3个元素。接着,我们使用pop方法在栈顶删除了最后一个元素。

栈的访问

可以使用循环遍历栈中的元素,并访问每个元素的值。以下是一个示例代码,演示如何访问栈中的元素:

# 访问栈中的元素
my_stack = [1, 2, 3]

# 遍历栈
for i in my_stack:
    print(i)

在上面的示例代码中,我们使用循环遍历栈my_stack中的元素,并访问每个元素的值。首先,我们使用for循环遍历栈中的每个元素;接着,我们使用i变量访问每个元素值,并使用print函数输出。

栈的修改

可以使用append方法在栈顶添加元素,并使用pop方法在栈顶删除元素。以下是一个示例代码,演示如何修改栈中的元素:

# 修改栈中的元素
my_stack = [1, 2, 3]

# 在栈顶添加元素
my_stack.append(4)

# 在栈顶删除元素
my_stack.pop()

# 输出修改后的栈
print(my_stack) # 输出[1, 2, 3]

在上面的示例代码中,我们使用append方法在栈顶添加了一个元素,并使用pop方法在栈顶删除了最后一个元素。最后,我们使用print函数输出修改后的栈。

示例说明

以下是一个示例代码,演示如何使用Python实现数组、链表、队列、栈,并访问它们中的元素:

“`python# 使用Python实现数组、链表、队列、栈,并访问它们中的元素
my_array = [1, 2, 3, 4, 5]

class ListNode:
def init(self, val=0, next=None):
self.val = val
self.next = next

my_list = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))

my_queue = [1, 2, 3]

my_stack = [1, 2,3]

访问数组中的元素

print(my_array[0]) # 输出1
print(my_array[-1]) # 输出5

访问链表中的元素

cur = my_list
while cur:
print(cur.val)
cur = cur.next

访问队列中的元素

for i in my_queue:
print(i)

访问栈中的元素

for i in my_stack:
print(i)
“`

在上面的示例代码中,我们使用Python实了数组、链表、队列、栈,并使用循环遍历它们中的元素,并访问每个元素的值。首先,我们使用列表实现了数组和栈;接着,我们使用类实现了链表;最后我们使用列表实现了队列。