![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
FLUNGGG
1111
展开
-
数据结构:数组
文章目录1. 简介2. 二次封装数组2.1 添加操作2.2 查找操作2.3 修改操作2.4 删除3. 动态数组4. 时间复杂度4.1 普通数组4.2 动态数组1. 简介数组是最基本的数据结构,属于线性表。存储一个固定大小的相同类型元素的顺序集合。最大的优势就是支持随机访问,即知道索引就可以访问。但是数组的长度一旦声明就是固定死的。接下来来使用数组二次封装实现栈,队列。2. 二次封装数组二次封装来实现数组的增删改查。创建一个泛型类,其中有两个成员属性public class Array<原创 2020-07-02 17:35:12 · 186 阅读 · 0 评论 -
数据结构:手撕二分搜索树
参考:慕课网liuyubobobo老师,突然发现网上好多教程都是参考他的,我也补充了liuyubobobo老师说的一些没有实现的方法,比如中序和后序的非递归写法,floor等。推荐看《算法第四版》,树的知识讲得贼好。原创 2020-03-12 19:31:07 · 1820 阅读 · 5 评论 -
数据结构:手撕链表
1. 简介链表也是最基础的数据结构,属于线性表。链表就像火车一样,每一个车厢互相连接,这些车厢就是一个个结点(Node)。链表就是通过这些结点的连接形成的。对比于数组,链表不支持随机访问,所以数组的访问速度非常快,而链表就慢了。但是链表的长度是动态的,这一点比数组好,不会浪费空间。2. 创建链表把结点Node封装在类中,因为用户是不需要知道有Node结点这些概念。public class...原创 2020-02-29 10:22:29 · 1680 阅读 · 3 评论 -
队列
1.概念 队列是一种先进先出(FIFO)的线性结构。2.关于队列的相关名词队头:进行删除数据的端队尾:进行添加数据的端入列:添加数据出列:取出数据空队列:没有存储数据3.工作原理 队列使用了两个指针,一个指向队头,负责对数据进行删除操作;...原创 2019-11-23 22:37:31 · 350 阅读 · 0 评论 -
栈
1.概念 栈是一种后进先出(LIFO)的线性存储结构。2.关于栈的相关名词栈顶:元素的插入和删除都是在这端操作的。栈底:顾名思义,栈顶的另一端。入栈(压栈):添加数据。出栈(弹栈):删除数据(取出数据)。空栈: 栈中没有数据。3.工作原理  ...原创 2019-11-23 21:17:28 · 356 阅读 · 0 评论