随笔分类 -  Java数据结构

摘要:平衡二叉树(AVL 树) 1 看一个案例(说明二叉排序树可能的问题) 给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在.  左边 BST 存在的问题分析: 1) 左子树全部为空,从形式上看,更像一个单链表. 2) 插入速度没有影响 3) 查询速度明显降低( 阅读全文
posted @ 2021-03-16 15:39 linzm14 阅读(427) 评论(0) 推荐(0) 编辑
摘要:二叉排序树 1 先看一个需求 给你一个数列 (7, 3, 10, 12, 5, 1, 9),要求能够高效的完成对数据的查询和添加 2 解决方案分析  使用数组 数组未排序, 优点:直接在数组尾添加,速度快。 缺点:查找速度慢. 数组排序,优点:可以使用二分查找,查找速度快,缺点:为了保证数组有序, 阅读全文
posted @ 2021-03-15 19:23 linzm14 阅读(237) 评论(0) 推荐(0) 编辑
摘要:1 顺序存储二叉树 1.1 顺序存储二叉树的概念  基本说明 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组, 看下面的示意图。  要求: 1) 右图的二叉树的结点,要求以数组的方式来存放 arr : [1, 2, 3, 4, 5, 6, 6] 2 阅读全文
posted @ 2021-03-11 09:58 linzm14 阅读(323) 评论(0) 推荐(0) 编辑
摘要:二叉树 1.1 为什么需要树这种数据结构 1) 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图] 画出操作示意图: 2) 链式存储方式的分析 优点:在一定程度上对 阅读全文
posted @ 2021-03-08 18:57 linzm14 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1 哈希表(散列)-Google 上机题 1) 看一个实际需求,google 公司的一个上机题: 2) 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址..),当输入该员工的 id 时,要求查 找到该员工的 所有信息. 3) 要求: 不使用数据库,尽量节省内存,速度越 阅读全文
posted @ 2021-03-07 19:11 linzm14 阅读(255) 评论(2) 推荐(0) 编辑
摘要:链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 小结: 1、链表是以节点的方式来存储,是链式存储。 2、每个节点包含 data 域, next 域:指向下一个节点。 3、如图:发现链表的各个节点不一定是连续存储。 4、链表分带头节点的链表和没有头节点的链表,根据实际的 阅读全文
posted @ 2021-01-31 21:33 linzm14 阅读(128) 评论(0) 推荐(0) 编辑
摘要:队列介绍 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。 即:先存入队列的数据,要先取出。后存入的要后取出 示意图:(使用数组模拟队列示意图) 数组模拟队列 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量 阅读全文
posted @ 2021-01-31 16:10 linzm14 阅读(192) 评论(0) 推荐(0) 编辑
摘要:稀疏数组 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 代码 package com.lin.SparseAr 阅读全文
posted @ 2021-01-31 13:01 linzm14 阅读(104) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示