数据结构
文章平均质量分 71
唐风绸繆
这个作者很懒,什么都没留下…
展开
-
数据结构 算法实现 下
非递归的中序遍历(通过栈实现,前序后序一样,调换pop(s)的位置即可)中序,先序,后序遍历。输出二叉树中的叶子结点(递归)队列: 顺序存储。队列: 链式存储。字符串KMP匹配算法。求二叉树高度(递归)原创 2024-04-21 23:46:54 · 187 阅读 · 0 评论 -
数据结构 算法实现 上
一般用于求解最优化问题,与贪心相似通过求子问题最优解得到整体最优解,但不同是动态规划从全局出发,发掘子问题和整体问题最优解之间的关系。创建线性表 输出线性表。确定一个贪心策略(在每一步上都得到当前最优解),将任务分步进行,每一步都依照贪心策略得到局部最优解。将数据分为左端和右端,分别求最大。然后求穿过边界的最大。三者比较得出最大和。插入要先将插入位置后的元素向后移一位,然后将新元素插入。直接让后面的元素向前覆盖一位。原创 2024-04-21 23:46:22 · 204 阅读 · 0 评论 -
数据结构 第五章 搜索
平衡二叉树AVL树:任一节点左右两边的高度差不超过1(回顾:平衡树是查找树,必须做变小右边大)顺序查找O(N);某节点右子树的右子树上插入元素导致该节点的平衡性被破坏:RR旋转。处理策略:闭散列方法:同义词存在表的其他位置 开散列方法:存在表外的空间。哈希函数的构造方法:常见如:除法取余 除数一般取素数。2将同一位置的冲突对象组合在一起---链地址法(开散列)关键码: 可以唯一地标识一个数据元素的数据项(属性)冲突:经过函数计算,有两个元素应当被储存在同一空间。散列查找(哈希查找) O(1)原创 2024-04-21 23:44:50 · 142 阅读 · 0 评论 -
数据结构 第四章 图
拓扑序列:对于有向图,其顶点V1,V2,...Vn的一种排列,如果满足:Vi到Vj有一条有向路径,则Vi排在Vj前面。完全图(有 n 个顶点的无向完全图有 n(n-1)/2 条边,有 n 个顶点的有向完全图有 n(n-1) 条边)如此往复,直到所有点都被标记,从V1到某一点V的路径为:依次输出节点的path直至path=-1。AOV网络:用顶点表示工程的活动,有向边表示活动之间的优先关系的有向图。关键路径:从源点到汇点权值最长的路径/没有机动时间的路径?进行拓扑排序的方法:重复选取入度为0的顶点输出。原创 2024-04-21 23:44:11 · 158 阅读 · 0 评论 -
数据结构 第三章 树
节点的度:节点的子树的数目;3 要删除的结点有左、右两棵子树——为了保持二叉搜索树的有序性,替代被删除的元素的位置可以有两种选择:一种是取其右子树中的最小元素;对于有n个节点的完全二叉树,节点i的双亲节点为i/2;堆可以用一棵完全二叉树来表示,如果任一结点的元素值都不大于(或不小于)它的左右孩子的元素值,则该完全二叉树就是最小堆(最大堆)2 要删除的结点只有一个子结点——删除之前需要改变其父结点的指针,指向要删除结点的孩子结点。链式存储:n个节点的数占用空间为n*(存储一个元素的空间+存储指针的空间)。原创 2024-04-21 23:43:26 · 370 阅读 · 0 评论 -
数据结构 第二章 队列的链表
队列为空的判定条件(以队首在地址低端为例)rear==front(初始化) rear==front-1(过程中)。为同意判断条件,让front 指示队首元素的前一个位置,或让rear指示队尾元素的后一个位置。2,约定队列元素达到 maxsize-1个时,队列为即视为满(队列满的判定条件为front==(rear+1)%MaxSize)广义表:表中套表,由于广义表中的数据元素可以具有不同的结构,因此难以用顺序存储结构表示,通常采用链式存储结构。稀疏矩阵:用三元组顺序存储--((行列信息二元组),值)原创 2024-04-21 23:42:12 · 236 阅读 · 0 评论 -
数据结构 第一章 基础知识
有时为了操作方便,在链表的第一个结点之前加一个“头结点”,该结点不存放元素,其指针指向线性表的第一个元素。链式存取结构:任意存储空间存放线性表的元素,用指针表示元素间的关系。存储方案:顺序存储结构:用内存中地址连续的存储单元存储,用物理上的相邻表示逻辑上的线性关系。抽象数据类型三元组表示:(D,R,P),其中D数据对象,R 数据关系,P基本操作。算法设计策略:蛮力策略,分治策略,贪心策略,动态规划策略,回溯策略,智能策略……一个栈(无穷大)的进栈序列为1、2、3、...、n,共有多少个不同的出栈序列?原创 2024-04-21 23:41:22 · 400 阅读 · 0 评论