Leetcode 1
2.Add Two Numbers Description You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse orde ...
Read more
数据结构之高级搜索树-伸展树
伸展树 局部性:刚被访问过的数据,极有可能很快再次被访问。(如BST) 对此,考察列表结构。在列表中,相邻的元素通过引用确立前驱和后继关系,对任意一个元素的访问效率主要取决于它在序列中的秩。秩越小,访问效率越高,为了提高多次查找的访问效率,可以考虑将刚刚接受访问的元素移动到序列的最前端, ...
Read more
数据结构之图
图 基本术语 图G由两个集合V和E组成,记为G=(V,E)G = (V, E)G=(V,E),V代表图中顶点的集合,E代表顶点之间的关系。将顶点的规模记为n=∣V∣n = |V|n=∣V∣,边集的规模记做e=∣E∣e = |E|e=∣E∣。 邻接(adjacency)顶点与顶点间的关系 ...
Read more
数据结构之二叉搜索树
二叉搜索树 概念 循关键码访问 数据各项之间,依照各自的关键码彼此区分。其中关键码需要满足以下条件 大小比较 相等比对 数据集合中的数据项统一表示和实现为词条(entry)形式 词条: template <typename K, typename V> struct Entry ...
Read more
数据结构之二叉树
二叉树 树 向量的search操作效率较高,如二分查找,其效率可以达到\(log(n)\),但其动态操作,无论是插入和删除,其效率都较低,需要线性的时间。 列表的search操作,其效率较低,需要线性的时间,但由于其循位置访问的方式,一旦给定具体的操作位置,对于列表的动态操作就只需要在局部 ...
Read more
数据结构之栈和队列
栈(stack) 基础概念 栈仍然是一个序列,遵循后进先出的原则。可以基于向量或列表派生,共有三种操作方法: push() 入栈 insert(size(), e)pop() 出栈 remove(size() -1) top() 取顶操作 (*t ...
Read more
数据结构之列表
列表基础 对于数据结构的操作可以分为两类: 静态:仅读取get \(O(1)\)、search \(O(logn)\)操作 动态:需写入insert \(O(n)\)、remove \(O(n)\)操作 列表采用动态存储策略: 列表元素称为节点(node) 各节点通过指针或引用彼此联接 ...
Read more
数据结构之向量
  根据清华大学邓俊辉老师的课程整理记录。使用C++编程。 向量基础 向量概念   向量是数组的抽象与泛化,由一组元素按照现行次序封装而成。 各元素与[0,n)内的秩一一对应 元素类型不限于基本类型 操作、管理、维护更简化、统一、安全 可更为敏捷参与复杂数据结构的控制与实现 ...
Read more