Day 2 笔记 数据结构】的更多相关文章

Day 2 笔记 数据结构 1.栈.队列.链表等数据结构都是线性数据结构 2.树状数据结构:二叉堆,线段树,树状数组,并查集,st表... 优先队列其实与二叉堆的存储方式并不相同. 一.二叉堆 1.二叉堆的基本功能: 1.插入元素:O(logn) 2.查找元素:O(logn) 3.删除元素:O(logn) 4.输出堆:O(n) 2.完全二叉树(堆)定义: 所有的叶子节点比非叶子结点的编号小(放左不放右) 3.二叉树存储: 向量存储:根节点是x,左儿子是2x,右儿子是2x+1. 为什么?请看下面的…
一.数据结构的接口 在Java中全部类的鼻祖是Object类,可是全部有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Collection c = new Xx(); // c能够称为Collection接口回调对象.尽管它被声明为Collection类型,可是实例化时实现的是接口的实现类Xx.它的方法也是用来操作实现类的对象. <span style="white-space:pre"> </s…
1.解压序列赋值给多个变量 任何的序列(或者是可迭代对象)可以通过一个简单的赋值语句解压并赋值给多个变量. 唯一的前提就是变量的数量必须跟序列元素的数量是一样的. >>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]>>> name, shares, price, date = data >>> name, shares, price, (year, mon, day) = data >>>…
数据结构和算法 解包赋值 p = [1, 2, 3] a, b, c = p # _表示被丢弃的值 _, d, _ = p # 可变长解包 *a, b = p # 字串切割解包 line = 'nobody:hello:world:123:/dirname' a, *_, c, d = line.split(':') 保留最后N个元素 from collections import deque p = list(range(10)) d = deque(maxlen=3) def keep_hi…
1.字典中一个键映射多个值 可以使用collections中的defaultdict来实现,defalultdict接受list或者set为参数 from collections import defaultdict d = defaultdict(list) d['a'].append(1) d['a'].append(2) d['b'].append(4) >>> ddefaultdict(<type 'list'>, {'a': [1, 2], b: [4]}) 2.字…
Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) D2 - Optimal Subsequences (Hard Version) 这是一个发挥想象力的题,可以离线,询问区间[1,r]的第k大.在线的话就是一个主席树的裸题,当然用可持久化平衡树也可以做. 离线之后,可以在线段树上二分或者在树状数组上二分.…
看到这篇文的很多人大概都知道链表是个什么玩意了.简单说就是一个又一个的指针,指针之间用指针连接起来. 本文的阅读   适合有c++基础的人群 以下: 这叫做一个结点. 这就是一个链表.我们主要使用的是第一个结点上面没有数据,后面的结点有数据的链表.(别管为什么了,快试试吧.其实就是为了操作方便且统一) 由于不知道链表里面的数据类型,因此我们用C++中的模板. template <class T> struct Node{ T data;//数据域中的数据 Node<T> *pnex…
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M…
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) 并入一个列表 将指定列表中的所有元素附加到另一个列表的末尾:相当于a[len(a):] = L list.insert(i,x) 指定位置i插入一个元素x 在给定位置插入一个元素.第一个参数是插入的元素的索引,所以 a.insert(0, x) 在列表的最前面插入,a.insert(len(a),…