数据结构
文章平均质量分 61
sylviiiiiia
深水区
展开
-
数据结构期末复习
思维导图原创 2022-12-28 00:43:17 · 134 阅读 · 0 评论 -
c++数据结构:查找
一维数组:顺序查找O(n)、二分查找(先排序)O(logn)二分查找的经典bug:可能带来数组越界的bug,所以low和high要先/2再相加在查找的同时对表进行修改(插入和删除)e.g. cpu的任务调度在查找过程中同时插入查找表中不存在的元素,或删除某个存在的数据元素结点带权;左子树的每个结点都比根节点小,右子树的每个结点都比根节点大;递归定义但给定的序列接近有序时,BST会退化成链表平衡二叉树 AVL树平衡因子Balance Factor BF=hl-hrAVL树的每个结点的|平衡因子原创 2022-12-05 21:10:03 · 1519 阅读 · 0 评论 -
c++数据结构:图
图的ADT定义G = (Vertx顶点, Edge边(无向)、弧(单向,有弧头,弧尾)) 多对多邻接 a->f则f是a的邻接点,反之不成立出度、入度有向图、无向图边稀疏图、稠密图 边少or边多 极致的稠密图是完全图带权图子图G’=(V’, E’)路径P=(v0v1…vn-1)回路R=(v0v1…vn-1v0)邻接矩阵/邻接表是顺序表 o(n2)包含结点数目,结点名称,邻接矩阵是链表,使用前插法o(1),适合于存储稀疏图o(e),e是边数,完全图e=n2而且还占用空间更多包含边(权重原创 2022-11-13 22:05:39 · 503 阅读 · 0 评论 -
c++数据结构:二叉树
关系约束定义:每个结点有0~n个子节点 一对多关系递归定义:子树。原创 2022-10-28 13:39:50 · 822 阅读 · 0 评论 -
c++数据结构:多维数组,稀疏矩阵
【代码】多维数组,稀疏矩阵。原创 2022-10-28 13:34:12 · 387 阅读 · 0 评论 -
字符串模式匹配算法(KMP算法)
最大公共首尾子串->next数组(手算,计算机算)->改进版nextv数组。在字符串中寻找字串第一次出现的位置,返回第一个下标。应用:模糊搜索,文档内容查找。暴力算法&KMP算法。原创 2022-10-18 15:14:07 · 326 阅读 · 0 评论 -
c++数据结构:栈和队列
例题:括号匹配问题,进制转换问题,表达式计算问题(计算由常数和二元运算符,括号组成的四则运算表达式)±*/() #开始 结束 用M二维数组记录运算符优先级。本质是线性表,但只有一端可以进行元素增删,先进后出(FILO),增加了约束(如果用数组实现可能出现人工错误)。优先队列:队列中的元素按照关键字有序排序,出队相同,入队操作=有序表的插入操作。顺序结构实现:循环队列(以免浪费空间),比较麻烦要处理下标。实现方式:顺序表、链表、stl(stack)唯一入口唯一出口,先进先出FIFO。原创 2022-10-10 23:40:49 · 114 阅读 · 0 评论 -
c++数据结构:线性表(顺序表,单链表)
链式结构线性表:复杂,不能随机访问,没有存储上限,增删方便,读O(n),但物理硬件读均比写快。CRUD (create/insert,read,update,delete)增删改查。顺序结构线性表:简单,便于随机访问,有存储上限,增删不方便,写O(n)物理实现:可利用碎片内存,不需要连续内存,但有额外开销。循环链表:末尾next指向头结点,如:约瑟夫问题。c的动态分配内存:malloc,free。c++动态分配内存:new,delete。物理实现:类似数组,但动态分配内存。内存的空间状态分析法。原创 2022-10-09 19:42:18 · 403 阅读 · 0 评论