随笔分类 - 数据结构算法
摘要:概述 树一类很常用的数据结构 常见的有二叉树,二叉搜索树,红黑树 树的性质 主要是树的一些基本概念。 节点 父节点、子节点、叶子节点、根节点这些概念。 树的深度,宽度 二叉树 二叉搜索树 红黑树 这些树的概念和区别。 树的一些基本操作 遍历 树的遍历 前序遍历 根->左->右 中序遍历 左->根->
阅读全文
摘要:链表 特点: 节点内部包含指向下一个节点的指针,这种称为单链表 既有下个节点也有上个节点的指针,这种称为双向链表 链表又分为带头结点和不带头结点的 链表的一些基本套路 假设链表为如下数据结构: class ListNode { int val; ListNode next; public ListN
阅读全文
摘要:队列 特点: 队列的特点是先进先出。即第一个进入队列的元素会第一个出来。 java中队列的实现: //创建一个普通队列 Queue<Integer> queue = new LinkedList<Integer>(); //普通队列添加数据 queue.offer(123); //获取队列的大小 i
阅读全文
摘要:栈 特点: 栈是一种先进后出的数据结构。最后被压入栈的元素会第一个被弹出。 通常栈是一种不考虑排序的数据结构,要查找数据的时间复杂度为O(n). java代码中栈的使用: //创建一个栈 Stack<Integer> stack = new Stack<>(); //判断栈是否为空 stack.is
阅读全文
摘要:数据结构之字符串 字符串是由若干字符组成的序列。在编程时使用的频率非常高。 字符串的一些常见操作 //字符串转成数组 String s= "123"; char[] c = s.toCharArray(); //字符串和Integer互转 String s = "123"; int num = In
阅读全文
摘要:数据结构之数组 数组在内存中的存储方式: 数组占据一块连续的内存,并按照顺序存储数据。 数组常见操作 以下均为java语言描述 //指定大小创建一个数组 int n = 10; int[] nums = new int[n]; //带数据创建 int[] nums = new int[]{1,2,3
阅读全文
摘要:数据结构与算法总结 常用数据结构 数组 字符串 栈 队列 链表 树 图 常用算法 递归 查找 排序 搜索 动态规划 分治 回溯 位运算
阅读全文
摘要:动态规划 动态规划的求解思路: 动态规划可以说是一种思想:自上而下分析问题,自下而上解决问题。 什么意思呢,就是把一个大问题分解成若干个小问题,对每个小问题求解,求的解存储在一维数组或者二维数组中。 然后自下而上解决问题,意思就是每个小问题求解完毕后,再去求解较大的问题,直到最后问题解决。 将原问题
阅读全文