数据结构
什么是数据结构
简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。
比如:列表、集合与字典等都是一种数据结构。
N.Wirth: “程序=数据结构+算法”
1、列表:
在其他编程语言中称为“数组”,是一种基本的数据结构类型。
关于列表的问题:
列表中元素使如何存储的?
列表提供了哪些基本的操作?
这些操作的时间复杂度是多少?
2、栈
栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。
栈的特点:后进先出(last-in, first-out)
栈的概念:
栈顶
栈底
栈的基本操作:
进栈(压栈):push
出栈:pop
取栈顶:gettop
栈的示例图:

3、队列
队列(Queue)是一个数据集合,仅允许在列表的一端进行插入,另一端进行删除。
进行插入的一端称为队尾(rear),插入动作称为进队或入队
进行删除的一端称为队头(front),删除动作称为出队
队列的性质:先进先出(First-in, First-out)
双向队列:队列的两端都允许进行进队和出队操作。
单向队列示例图:

4、链表
链表中每一个元素都是一个对象,每个对象称为一个节点,包含有数据域key和指向下一个节点的指针next。通过各个节点之间的相互连接,最终串联成一个链表。
节点定义:
class Node(object):
def __init__(self, item):
self.item = item
self.next = None
单向链表插接元素示例图:

双向链表:双链表中每个节点有两个指针:一个指向后面节点、一个指向前面节点。
节点定义:
class Node(object):
def __init__(self,item = None)
self.item = item
self.next = None
self.prior = None
双向链表插接元素示例图:


浙公网安备 33010602011771号