为一个特定的任务选择最好的数据结构和算法是开发高性能软件的一个关键。 数据结构是以某种形式将数据组织在一起的集合(collection)。数据结构不仅存储数据,还支持访问和处理数据的操作。 在面向对象思想里,一种数据结构也被认为是一个容器(container)或者容器对象(container obj ...
分类:
其他好文 时间:
2020-07-29 17:53:03
阅读次数:
74
#一、数据结构 ##1.理解常见数据结构的特点,以及他们在不同场景下使用的优缺点 ##2.理解数组、字符串的存储原理,并熟练应用他们解决问题 ##3.理解二叉树、栈、队列、哈希表的基本结构和特点,并可以应用它解决问题 ##4.了解图、堆的基本结构和使用场景 #二、算法 #三、手动实现前端轮子 ...
分类:
编程语言 时间:
2020-06-26 22:19:09
阅读次数:
66
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等一、解释定义1.数据结构:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。再简单描述一下:数据结构就是描述对象间逻辑关系的学科。如果还是不太清楚下面会举例说明的。2.数据存储结构:简单的讲就是数据在计算机中的存储方式。常用的数据存储方式有两种:顺序存储,非顺序存储。顺序存储就是把数据存储在一块联系的存储介质(硬盘或
分类:
编程语言 时间:
2020-06-25 10:09:22
阅读次数:
94
栈 //用数组实现一个顺序栈 type Stack struct{ arr []int used int capcity int } func NewStack(capicity int) *Stack{ stack := &Stack{} stack.arr = make([]int,capici ...
分类:
其他好文 时间:
2020-06-18 01:34:12
阅读次数:
50
1.堆【heap】 (1)堆总是一颗完全二叉树【深度为K,除了k层外,1~k-1层的结点数都达到最大值,k层所有的节点都连续集中在最左边的就是完全二叉树】 (2)堆 不是在程序编译时申请内存的,而是在程序运行时向操作系统申请内存空间,即动态分配内存空间,一般是申请/给予的过程; (3)堆通常可被看作 ...
分类:
其他好文 时间:
2020-06-13 10:35:03
阅读次数:
67
抽象数据类型 列表、栈、队列 实现数据结构 是否重复有序 不同的链表 单链表、双端链表、双端双向链表 LinkedList、ArrayList 大小固定,有下标 插入删除,效率都是O(N) add、remove、contains、indexof ArrayList、Vector 默认容量 10 默认 ...
分类:
其他好文 时间:
2020-06-11 21:54:26
阅读次数:
87
简介 LinkedList是以双向链表为数据结构的容器。它可以进行堆栈、队列、双端队列的操作。 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, ...
分类:
其他好文 时间:
2020-06-11 10:50:44
阅读次数:
55
目录 一、背景 二、概念 2.1 栈 2.2 队列 三、栈和队列的相互实现 3.1 用队列实现栈 3.2 用栈实现队列 四、总结 一、背景 栈和队列是数据结构中最常用到的两种结构,有非常广泛的运用,该篇文章将通过动画的手段,展示栈和队列相互实现的底层原理,让我们真正搞懂栈和队列的特性。 二、概念 2 ...
分类:
其他好文 时间:
2020-06-10 09:21:44
阅读次数:
82
前言 马上要考数据结构了,停更一个星期后决定先把数据结构这一块复习一遍。 (总目录:https://www.cnblogs.com/jinkun113/p/12528423.html) 子目录列表 1、数据结构简介 2、栈 3、队列 4、链表 7.1 栈,队列与链表 1、数据结构简介 数据结构,顾名 ...
分类:
其他好文 时间:
2020-05-28 12:58:18
阅读次数:
52
2.1 汉诺塔游戏——栈 应该有一部分人在小时候听说过汉诺塔这个游戏。我记得在小时候曾非常流行买电子词典来学习英语,基本上每个人都有一本电子词典。在电子词典中也预设了几个益智的小游戏,其中一个就是汉诺塔。 2.1.1 什么是汉诺塔 汉诺塔是印度的一个古老的益智玩具,其基本设置如图2-1所示。 这个游 ...
分类:
其他好文 时间:
2020-05-27 01:18:10
阅读次数:
56