随笔分类 -  恋上数据结构与算法第一季

摘要:队列 队列(Queue) 队列一种特殊的线性表,只能在头尾两端进行操作 队尾(rear):只能从队尾添加元素,一般叫做enQueue,入队 队头(front):只能从队头移除元素,一般叫做deQueue,出队 先进先出的原则,First In First Out,FIFO 队列(Queue)接口设计 阅读全文
posted @ 2021-08-09 00:08 EmptyJar 阅读(89) 评论(0) 推荐(0) 编辑
摘要:栈 栈(Stack) 栈是一种特殊的线性表,只能在一端进行操作 往栈中添加元素的操作,一般叫做push,入栈 从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫做:弹出栈顶元素) 后进先出的原则,Last In First Out,LIFO 注意:这里说的 “栈” 与内存中的 “栈空 阅读全文
posted @ 2021-08-09 00:08 EmptyJar 阅读(63) 评论(0) 推荐(0) 编辑
摘要:循环链表 单向循环链表 单向循环链表的结构 尾结点的next,指向头结点 当只有一个结点 接口设计 相较于单向链表,单向循环链表需要重写插入结点、删除结点两个方法 插入节点,需要特别关注插入头节点的情况。此时需要拿到尾节点,然后将其next指向新节点。 public class SingleCirc 阅读全文
posted @ 2021-08-09 00:08 EmptyJar 阅读(53) 评论(0) 推荐(0) 编辑
摘要:链表 链表(Linked List) 动态数组有个明显得缺点 可能造成内存空间的大量浪费 能否用到多少就申请多少内存? 链表可以办到这一点 链表是一种链式存储的线性表, 所有元素的内存地址不一定是连续的 链表(Linked List)接口设计 链表的大部分接口和动态数组是一致的 int size() 阅读全文
posted @ 2021-08-09 00:07 EmptyJar 阅读(43) 评论(0) 推荐(0) 编辑
摘要:动态数组 什么是数据结构? 数据结构是计算机存储、组织数据的方式 在实际应用中,根据使用场景来选择最合适的数据结构 参考:数据结构与算法动态可视化 线性表 线性表是具有 n 个相同类型元素的有限序列( n ≥ 0 ) a1 是首节点(首元素), an 是尾结点(尾元素) a1 是 a2 的前驱, a 阅读全文
posted @ 2021-06-10 22:41 EmptyJar 阅读(395) 评论(0) 推荐(0) 编辑
摘要:复杂度 什么是算法? 算法是用于解决特定问题的一系列的执行步骤 // 计算a和b的和 public static int plus(int a, int b){ return a + b; } // 计算1+2+3+...+n的和 public static int sum(int n){ int 阅读全文
posted @ 2021-06-07 20:11 EmptyJar 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Why Java? C:非面向对象,写法复杂,大量内存管理代码 C++:写法复杂,大量内存管理代码 Objective-C、Swift:需要 Mac 系统 JavaScript、Python:依赖于脚本解析器,同一个逻辑使用不同写法会影响代码性能,影响算法性能测评 Java:语法丰富严谨,更多的注意 阅读全文
posted @ 2021-06-06 16:33 EmptyJar 阅读(32) 评论(0) 推荐(0) 编辑

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