第6节 数据结构

O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)

第6节 数据结构_第1张图片

timeit模块

timeit模块可以用来测试一小段Python代码的执行速度。

class timeit.Timer(stmt='pass', setup='pass', timer=)

Timer是测量小段代码执行速度的类。

stmt参数是要测试的代码语句(statment);

setup参数是运行代码时需要的设置;

timer参数是一个定时器函数,与平台有关,一般不用设置。

timeit.Timer.timeit(number=1000000)

Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。

数据结构知识点 不知道的自己去百度

基础结构 顺序表 链表

顺序表:表头,数据一体式结构,分离式结构,元素存储区替换有区别。扩充分为一次一倍,一次+固定长度、也可一结合,比如翻倍到5000时,再按固定长度+。 常见:尾端加入元素,非保序的加入元素(不常见), 保序的元素加入。有对应删除。非保序存储指将最后置顶位置的元素拿出来,放到最后。

链表有单向链表,循环链表,双向链表。

单链表的操作

is_empty() 链表是否为空

length() 链表长度

travel() 遍历整个链表

add(item) 链表头部添加元素

append(item) 链表尾部添加元素

insert(pos, item) 指定位置添加元素

remove(item) 删除节点

search(item) 查找节点是否存在

循环链表:

is_empty() 判断链表是否为空

length() 返回链表的长度

travel() 遍历

add(item) 在头部添加一个节点

append(item) 在尾部添加一个节点

insert(pos, item) 在指定位置pos添加节点

remove(item) 删除一个节点

search(item) 查找节点是否存在

双向链表:is_empty() 链表是否为空

length() 链表长度

travel() 遍历链表

add(item) 链表头部添加

append(item) 链表尾部添加

insert(pos, item) 指定位置添加

remove(item) 删除节点

search(item) 查找节点是否存在

栈的操作

Stack() 创建一个新的空栈

push(item) 添加一个新的元素item到栈顶

pop() 弹出栈顶元素

peek() 返回栈顶元素

is_empty() 判断栈是否为空

size() 返回栈的元素个数

队列的实现

同栈一样,队列也可以用顺序表或者链表实现。


Queue() 创建一个空的队列

enqueue(item) 往队列中添加一个item元素

dequeue() 从队列头部删除一个元素

is_empty() 判断一个队列是否为空

size() 返回队列的大小

双端队列

双端队列(deque,全名double-ended queue),是一种具有队列和栈的性质的数据结构。

双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双端队列可以在队列任意一端入队和出队。

Deque() 创建一个空的双端队列

add_front(item) 从队头加入一个item元素

add_rear(item) 从队尾加入一个item元素

remove_front() 从队头删除一个item元素

remove_rear() 从队尾删除一个item元素

is_empty() 判断双端队列是否为空

size() 返回队列的大小

你可能感兴趣的:(第6节 数据结构)