数据结构与算法
文章平均质量分 85
主要以java语言实现各种常见的数据结构和相应的算法
c_o_d_e_
写一个博客就一定要掌握这个知识!
展开
-
Java 数据结构与算法 环形队列
最近由于忙其他事情,有一段时间没有接触一些基础的数据结构了,前两天遇到一个手写环形队列的题,都搞忘了,再次特地写一篇博客,记录一下,加深印象。环形队列主要是有几个公式容易忘记,其实理解了也很简单。几个必要的变量说明int[] arr:存储队列的数组,也可以用链表做,这里不多赘述int maxSize:数组的长度,也是队列的最大长度,通常是初始化队列时传入int front:队头指针,记录数组中队列的队头下标int size:当前的队列的长度注:以前学习数据结构时,一般老师或者教原创 2020-12-30 13:09:34 · 156 阅读 · 0 评论 -
Java 数据结构与算法 二叉树的常见操作
下面通过一个实例来简单实现下二叉树的常见操作创建一个树结构TreeNode类:/** * 二叉树结构 - 子节点 */public class TreeNode { Object data;//泛型数据对象 TreeNode lchild;//左子节点 TreeNode rchild;//右子节点 //默认构造方法 public TreeNode(Object data,TreeNode lchild,TreeNode rchild) {原创 2020-11-29 16:37:40 · 152 阅读 · 0 评论 -
Android实现小米手机自带的计算器
最近突发兴趣,想自己实现一个提供四则混合运算的计算器,心动不如行动,就开始用Android来具体的实现下。但这种小Demo听着简单,实现起来还是需要一些参考。考虑到界面的美观性,我最终选择了小米手机自带的计算器来模仿。这个计算器的图大概是这样的以前学习栈的时候,我们知道,要实现一个能进行简单混合运算的计算器功能,需要通过两个栈将中缀表达式转换为前缀表达式(或后缀表达式),而且逻辑也比较复杂。如果对这个有兴趣的可以看我另一篇博客,有程序的流程图:https://blog.csdn.net/c_o_原创 2020-11-07 00:49:24 · 2044 阅读 · 3 评论 -
单链表实现栈结构
最近遇到一种类型的算法题,是实现栈的pop、push、peek等方法的同时,还让实现min取得栈中最小值的功能, 题目最特殊的一点就是,要求时间复杂度为O(1)。具体的题目如下:请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);原创 2020-10-28 16:54:11 · 795 阅读 · 2 评论 -
中缀表达式转前缀、后缀表达式
中缀表达式转前缀、后缀表达式原创 2020-09-24 14:46:16 · 7523 阅读 · 2 评论 -
递归的压栈出栈过程 - 动图演示
一个简单的java程序实现的递归public static void main(String[] args) { test(10); } static void test(int i){ System.out.println("非递归的i="+i); if(i>0){ test(i-2); System.out.println("递归“i-2”的i="+i); }原创 2020-07-16 14:02:28 · 3642 阅读 · 0 评论 -
Java 数据结构与算法 单链表
单链表通过结点存储数据,每一个数据都是一个结点结点由当前数据的指针(这里可以理解为java的对象)、数据内容、下一个结点的指针三部分组成单链表的结构如下图看懂下面代码所需知识:java基础由于写的注释有点多,代码不是很简洁,望理解,适合新手阅读/** * 基础单链表增删改查的实现 * 思路: * 1.创建存储基本信息的结点(Node)类 * 2.创建单链表操作类对这些基本信息进行增删查改 */public class SingleListDemo1 { ..原创 2020-07-19 22:01:15 · 218 阅读 · 0 评论