
数据结构
aaaaaaaaaa..
这个作者很懒,什么都没留下…
展开
-
链表
1.链表1.1 链表的概念和结构概念:链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的结构:由以下情况组合起来就有8种链表结构单向、双向带头、不带头循环、非循环虽然有多种链表的结构,但是实际中常用的还是两种结构无头单向非循环链表:结构简单,一般不会单独用来存数据。实际中更多是作为其他数据结构的子结构,如哈希桶、图的...原创 2019-06-26 09:22:18 · 124 阅读 · 0 评论 -
顺序表
1.算法效率算法效率有2种:时间效率(时间复杂度) 和 空间效率 (空间复杂度)时间复杂度 主要衡量的是一个算法的运行速度;空间复杂度 主要衡量一个算法所需要的额外空间。1.1时间复杂度定义:算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。理论上是无法通过计算提前预知的。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度...原创 2019-06-23 21:08:10 · 117 阅读 · 0 评论 -
链表OJ
删除单向链表所有的valstruct ListNode* removeElements(struct ListNode* head, int val){ if (head == NULL) return NULL; struct ListNode* prev = head;//prev用来保存找到的val,方便完成链表的重组 struct ListNode* cur = head-&g...原创 2019-06-28 16:17:28 · 263 阅读 · 0 评论 -
栈和队列
1.栈1.1概念与结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代...原创 2019-06-29 22:32:42 · 151 阅读 · 0 评论 -
二叉树及相关知识点总结
1.线性与非线性结构线性结构:一个有序数据元素的集合,线性结构指的是数据元素之间存在着**“一对一”**的线性关系的数据结构;非线性结构:其逻辑特征是一个结点元素可能有多个直接前趋和多个直接后继。常用的线性结构有:线性表,栈,队列,双队列,数组,串;非线性数据结构是1.没有对应关系的 集合结构2.一对多的 树结构3.多对多的 ...原创 2019-07-31 15:20:47 · 212 阅读 · 0 评论 -
数据结构之各种排序方式:直接插入,希尔,直接选择,冒泡,归并,计数,快速排序三种方式
1.排序的概念稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序: 数据元素全部放在内存中的排序。外部排序: 数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存...原创 2019-08-02 09:02:14 · 869 阅读 · 0 评论 -
map+set+平衡二叉树
1.关联式容器STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在 数据检索时比序列式容器效率更高。特点STL 关联容器的底层数据结构...原创 2019-08-31 15:10:36 · 1021 阅读 · 0 评论 -
AVL树
4.2AVL树4.2.1 AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果**数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当 于在顺序表中搜索元素,效率低下。**解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之 差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。一棵AVL树或者是空树,或者是具有以下性质...原创 2019-08-31 22:43:11 · 205 阅读 · 0 评论