
数据结构
数据结构
長安꧔ꦿ
这个作者很懒,什么都没留下…
展开
-
AVL(平衡二叉树)
AVL平衡树最早的平衡二叉树之一。应用相对其他数据结构比较少。windows对进程地址空间的管理用到了AVL树。定义左右子树均为AVL树左右子树的高度差的绝对值不超过1平衡二叉树满二叉树一定是平衡二叉树,高度最低完全二叉树也是平衡二叉树,叶子节点深度相差不为1线段树也是平衡二叉树,叶子节点深度相差不为1下图中看起来比较偏斜,但是符合定义 平衡二叉树的高...原创 2019-07-26 19:22:18 · 520 阅读 · 2 评论 -
图论
图论图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系1.1图的重要组成部分节点:Vertex边:Edge可以表示:交通运输、社交网络、互联网、工作安排、脑区活动、程序状态执行1.2图的分类无向图...原创 2019-07-22 21:09:03 · 676 阅读 · 0 评论 -
算法(排序)
1.对比算法1.1选择排序/* * 选择排序 * 核心思想:每个元素与后面的元素挨个比较 * 平均时间复杂度O(n^2) * 最好的时间复杂度O(n^2) * 最坏的时间复杂度O(n^2) * 空间复杂度O(1) * 稳定性:不稳定 * */public class SelectSort { public static void SelectSort(int[] arr...原创 2019-05-14 10:06:35 · 158 阅读 · 0 评论 -
二分搜索树(二叉排序树)(源代码)
二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;(3)左、右子树也分别为二叉排序树;二叉树:就是一种特殊的树结构 元素节点最多有两个孩子节点二叉树怎么存?动态数组 动态链表如果动态数组存一个深度为h的二叉树 最多需要2^h-1每一层最...原创 2019-04-11 19:09:52 · 411 阅读 · 0 评论 -
八皇后问题(源代码)
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n1×n1,而皇后个数也变成n2。而且仅当 n2 ≥ 1 或 n1 ≥ 4 时问题有解。八皇后问题最早是由国际西洋棋棋手马克斯·贝瑟尔...原创 2019-04-11 18:49:46 · 512 阅读 · 0 评论 -
汉诺塔问题(源代码)
1.相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。**分析:**对于这样一个...原创 2019-04-11 18:42:26 · 1340 阅读 · 0 评论 -
206.反转链表(两种方法:迭代和递归)
解题思路:1.迭代–创建一个新的链表的哑巴节点root,创建一个过度指针n,使用头插法将head链表中的元素取出插入root链表中,返回root.next;class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null){ ...原创 2019-04-03 19:32:58 · 183 阅读 · 0 评论 -
905.按奇偶数组排序
**解题思路:**定义两个指针和一个新的数组,头尾同时遍历,如果是偶数,则从新数组头开始插入,如果是奇数,则从尾开始插入,直到数组遍历完成。class Solution { public int[] sortArrayByParity(int[] A) { if(A==null||A.length==1){ return A; }...原创 2019-04-03 16:38:36 · 318 阅读 · 2 评论