数据结构
文章平均质量分 66
浅思浅影
好事多磨终成事,佳期难得自有期
展开
-
常见算法题
初始化列出到最后一步的 所有可能关系式。原创 2024-10-28 00:26:06 · 746 阅读 · 0 评论 -
数据结构—11:总结
一、字符串字符串翻转 找出输入的字符串中出现次数最多的字符及次数 找出字符串中连续出现次数最多的字符及次数 打印账单,阿拉伯数字转中文 KMP算法 两个序列的最长公共序列二、贪心总是做出在当前看来最好的选择,希望产生整体最优。(局部最优选择)找零钱问题 0-1背包问题(价值最大) 活动安排问题 哈夫曼树 最短路径 最小生成树三、动态规划与分治法类似,分成若干子问题,在已知子问题结果的基础上获得一个子问题的解,最终得到最优解。(最优子结构、子问题重叠...原创 2022-01-06 22:55:59 · 137 阅读 · 0 评论 -
数据结构—09:动态规划
目录动态规划例题1:找零钱问题例题2:价值最大问题例题3:最长公共子序列问题例题4:走方格问题例题5:矩阵连乘积问题动态规划与分治法类似,分成若干子问题,在已知子问题结果的基础上获得一个子问题的解,最终得到最优解。(最优子结构、子问题重叠)。解题步骤:分析最优解的结构; 建立递归关系; 计算最优值; 构造最优解。例题1:找零钱问题给定一些人...原创 2022-01-06 22:52:50 · 99 阅读 · 0 评论 -
数据结构—08:贪心
目录贪心算法例题1:找零钱问题例题2:0-1背包问题(价值最大)例题3:活动安排问题贪心算法总是做出在当前看来最好的选择,希望产生整体最优。(局部最优选择)其他应用场景:哈夫曼树 最短路径 最小生成树例题1:找零钱问题给定一些人民币的面额,数量不限,要求找出金额为m元且人民币张数最少的方案。对于现行的人民币面额:1、5、10、20、50、1...原创 2019-10-10 17:29:53 · 182 阅读 · 0 评论 -
数据结构—03:二叉树
目录四、二叉树5.二叉树遍历的递归实现6.二叉树遍历的非递归实现7.遍历序列恢复二叉树8.树、森林、二叉树的转换9.哈夫曼树(最优二叉树)附加:一个比较规范的二叉树实现:四、二叉树1.几个基本概念:结点的度:是指结点所拥有子树的个数,最大为2 二叉树的度:是指二叉树中各结点度的最大值 叶结点(终端结点):度为0的结点 分支结点(非终端结点):除叶结点外...原创 2019-08-13 16:26:49 · 301 阅读 · 0 评论 -
数据结构—02:栈和队列
目录二、栈三、队列例1:两个栈实现队列例2:用队列实现栈例3:用栈实现括号匹配例4:数组实现循环队列二、栈1.Java实现类:java.util.Stack;(不建议使用)//Vector底层也是动态数组public class Stack<E> extends Vector<E> { }2.主要方法: E push(...原创 2019-08-12 01:52:11 · 125 阅读 · 0 评论 -
数据结构—01:单链表
目录一、单链表例1:判断链表 是否有环例2:从尾到头打印出 链表每个结点的值例3:链表求和,实现两数相加例4:归并两个有序的链表例5:从有序链表中删除重复结点例6:删除链表的倒数第 n 个结点例7:每k个长度的链表翻转,最后不够k个的不翻转一、单链表1.定义一个单链表:public class LinkList<E> { //单链表...原创 2019-08-11 19:07:59 · 244 阅读 · 1 评论 -
数据结构—05:图
五、图1.分类:无向图 有向图 无向完全图:在无向图中,任意两顶点都有一条直接边相连接 有向完全图:在有向图中,任意两顶点之间都有方向互为相反的两条弧相连接 无向网:无向图的每条边都带权 有向网:有向图的每条弧都带权2.相关概念:顶点的度:指依附于某顶点 v 的边数,记为 TD(v) 入度:是指以顶点 v 为终点的弧的数目,记为 ID(v) 出度:是指以顶点 v 为起始...原创 2019-08-14 11:39:58 · 184 阅读 · 0 评论 -
数据结构—04:树
一、二叉排序(查找)树若左子树非空,则左子树上所有结点的值均小于根结点的值 若右子树非空,则右子树上所有结点的值均大于根结点的值 它的左、右子树也分别是二叉排序树二、AVL树平衡二叉树,是自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。它是一棵空树 或 它的左、右两...原创 2019-10-10 15:09:56 · 123 阅读 · 0 评论 -
数据结构—07:排序
简单的排序方法:冒泡排序、选择排序、插入排序、希尔排序。先进的排序方法:归并排序、快速排序、堆排序、基数排序。(一)冒泡排序1.算法思想每次在未排序的元素中两两比较找最大值,边找边从后往前存储(未排序...第i大、第2大、第1大)。第 1 趟在 n 个元素里找最大,放在第 n 位; 第 2 趟在前 n-1 个元素里找最大,放在第 n-1 位; 第 i趟在前 n-...原创 2019-10-10 15:12:22 · 347 阅读 · 0 评论 -
数据结构—06:查找
目录一、静态查找表二、动态查找表三、哈希表四、各种查找算法的适用场景:五、二分查找(折半查找)查找表分为静态查找表、动态查找表和哈希表。静态查找表:只做查找操作的查找表。 动态查找表:查找时又能插入或者删除数据元素的查找表。 哈希表:既适合于静态查找也适合于动态查找的查找表。一、静态查找表主要有:顺序表(顺序查找) 有序顺序表(顺序查找、折半查找、插值查...原创 2019-10-10 15:11:39 · 205 阅读 · 0 评论 -
数据结构—00:概述
数据结构:分为逻辑结构和物理结构逻辑结构包括:集合结构、线性结构、树形结构、图形结构。 物理结构分为:顺序存储结构、链式存储结构。算法的五个特性:有穷性、确定性、可行性、输入、输出。时间复杂度:即算法的时间度量,记做:T(n) = O( f(n) ) 。表示随问题规模n 的增大,算法的执行时间的增长率和 f(n) 的增长率相同,也称作算法的渐进时间复杂度。如何分析一个算法的时间复杂...原创 2019-10-10 14:45:27 · 139 阅读 · 0 评论