0
点赞
收藏
分享

微信扫一扫

《我的第一本算法书》数组、栈和队列的Python实现

晒大太阳了 2022-03-13 阅读 54

《我的第一本算法书》数组、栈和队列的Python实现

Python中可以使用自带的List数据结构方便地实现数组、栈和队列的数据结构。

一、数组

数组访问数据十分简单,添加删除数据程序内部步骤较多。

1、数组特点

(1)数据呈线性排列

数据按顺序存储在内存的连续空间内。

(2)数据增加和删除内部执行步骤较多

由于顺序的存储模式,导致增删数据需要对所执行位置后的所有数据都进行挪动,程序内部的步骤较多,效率不如链表高。

(3)可随机访问

数据支持通过下标进行访问。

2、代码实现

创建一个名为arr的List作为数组,放入BlueYellowRed字符串,可以直接通过下标访问它们。

    arr = ['Blue', 'Yellow', 'Red']
    print(arr[0], arr[1], arr[2])

输出结果:

Blue Yellow Red

(1)增加数据

使用List的insert方法:

    arr.insert(1, 'Green')
    print(arr)

输出结果:

['Blue', 'Green', 'Yellow', 'Red']

(2)删除数据

使用List的remove方法:

    arr.remove('Green')
    print(arr)

输出结果:

['Blue', 'Yellow', 'Red']

二、栈

也是一种线性排列的数据结构,但只能访问最新添加的数据。

1、栈的特点 - 先进后出

就像一摞书一样,往上堆叠之后,只能先查看最上面的书,拿开最上面的书后,才能对下方的书进行查看。

2、代码实现

(1)入栈(增加数据)

使用List的append方法:

    stack = []
    stack.append('Blue')
    stack.append('Green')
    stack.append('Red')

(2)出栈(取出/删除数据)

使用List的pop方法:

    print(stack.pop(), stack.pop(), stack.pop())

输出结果:

Red Green Blue

三、队列

也是一种线性排列的数据结构,但只能访问最早添加的数据。

1、队列的特点 - 先进先出

先来的数据先处理,就像排队一样,只能访问队伍最前面的人,最前面的人离开后,才能访问下一个。

2、代码实现

(1)入队(增加数据)

使用List的append方法:

    queue = []
    queue.append('Blue')
    queue.append('Green')
    queue.append('Red')

(2)出队(取出/删除数据)

使用List的pop方法:

    print(queue.pop(0), queue.pop(0), queue.pop(0))

输出结果:

Blue Green Red
举报

相关推荐

0 条评论