数据结构
sweeeeeet
越努力越幸运
展开
-
数据结构---顺序表和链表
1.线性表线性表是具有n个相同特性的数据元素的有限序列,线性表在逻辑上是线性结构,在物理存储上通常以数组和链式结构的形式存储。2.顺序表顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。用数组实现ArrayList(顺序表)public class MyArrayList implements IArrayList { private int...原创 2019-04-20 17:04:56 · 260 阅读 · 0 评论 -
【数据结构】---二叉树的应用
求叶子节点个数public static int countLeaf(Node root){ if(root!=null){ return countLeaf(root.left)+countLeaf(root.right); } return 0;}求二叉树的高度 private static int height(Node root) {...原创 2019-07-01 08:58:38 · 195 阅读 · 0 评论 -
【数据结构】---栈和队列的应用
1.实现循环队列class MyCircularQueue { private int size; private int rear; private int front; private int[] array; /** * Initialize your data structure here. Set the size of the qu...原创 2019-07-01 08:59:14 · 142 阅读 · 0 评论 -
【数据结构】----顺序表与链表的应用
!!!排列组合问题 古典概型现在面试的主趋势单向链表中最重要的是节点,真正有用的值是value,next是维持结构用的1 第一个节点有特殊性,1)没有前驱2)代表整个链表2 插入删除节点时需要前驱节点,除非是第一个节点3 凡是解引用的地方,需要考虑引用是否为null4 方便断开方便接上public class LinkedNode { /** * @Descrip...原创 2019-07-01 08:58:11 · 191 阅读 · 0 评论 -
【数据结构】---七种排序方法详述
排序:使数据按照某个或某些关键字的大小,递增(默认升序)或递减的排列起来的操作。稳定性:假设在待排序的序列中,存在多个具有相同关键字的记录,若经过排序,这些记录相对次序保持不变内部排序:数据元素全部放在内存中的排序外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序常见的排序算法:直接插入排序将待排序的记录按其关键码值的大小逐个插入到一个已经排好...原创 2019-05-06 16:05:44 · 1625 阅读 · 0 评论 -
数据结构---堆
一棵完全二叉树,并且双亲节点的值大于(小于)等于子节点的值,这样的二叉树成为大堆(小堆)。堆在物理上是一个数组,其作用是找到一组数据中的最大值。已知双亲下标parent:则左孩子下标:left=2parent+1;右孩子的下标:right=2parent+2堆的用处:1.解决优先级队列问题(如果vip值相等,无法保证先来先服务)2.排序:3.topK问题:在海量数据中,找到最大数量级的...原创 2019-05-04 20:15:45 · 156 阅读 · 0 评论 -
数据结构的时间复杂度与空间复杂度
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。算法:算法就是一系列的计算步骤,用来将输入数据转化成输出结果。算法效率分为两种:一种是时间复杂度(衡量一个算法的运行速度),另一种是空间复杂度(衡量一个算法所需要的额外的空间)。时间复杂度cpu每秒运行百万条指令数是恒定的,因此衡量算法快慢的标准为:数据规模(n)与算法运行的指令个数(F(n))。一个算法的时间复杂度是算法运行的...原创 2019-04-18 18:19:44 · 304 阅读 · 0 评论 -
数据结构---二叉树
树是一种非线性数据结构,它由n(n>=0)个有限结点组成一个具有层次关系的集合。树的每个结点有零个或多个子结点;没有父结点的节点称为根结点每个非根结点只有一个父结点除根结点以外,每个子结点可以分为多个不相交的子树一个节点的树有N-1条边有序树和无序树的区别:孩子节点的顺序是否需要区分数的相关概念结点的度:一个结点含有子树的个数称为该结点的度叶结点(终端结点):度为0的结...原创 2019-04-26 22:09:23 · 220 阅读 · 0 评论 -
数据结构----栈和队列
栈栈是一种特殊的线性表,只允许在固定的一端进行插入和删除操作,进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守LIFO(last in first out)的原则。压栈:栈的插入操作叫做进栈,插入的数据在栈顶出栈:栈的删除操作叫做出栈,删除的数据也在栈顶。栈的实现栈的实现可以使用数组或链表实现,数组的实现更优一些。interface IMyStack { ...原创 2019-04-20 18:51:13 · 138 阅读 · 0 评论 -
【数据结构】---搜索
搜索树任意节点的左子树的值都小于节点的值,右子树的值都大于节点的值,二叉搜索树中没有重复的节点。平衡搜索树:插入删除 查找的时间复杂度O(log(n))因为搜索树的高度不确定,所以时间复杂度不确定平衡树:为了解决搜索树高度不确定的缺憾1.AVL树:要求树中每个节点的左子树的高度和右子树的高度差的绝对值不超过1在AVL树中,每个节点会记录一项属性:平衡因子(左子树的高度-右子树的高...原创 2019-06-01 12:48:36 · 149 阅读 · 0 评论