算法
zjtMeng
攻城狮
展开
-
二叉搜索树(Binary Search Tree)
一、基本概念1. 二叉树和链表一样,具有动态的数据结构;具有唯一的根节点;每个节点最多有两个子节点,最多有一个父节点;每个节点的左子树也是二叉树,每个节点的右子树也是二叉树;一个节点或者空也是二叉树;2.二分搜索树二分搜索树属于二叉树的一种;每个节点的值大于其左子树的所有节点;小于其右子树的所有节点;每个子树也是二分搜索树;每个节点所存储的元素必须有可比较性;...原创 2020-02-02 18:06:09 · 193 阅读 · 0 评论 -
LeetCode——203. 移除链表元素
LeetCode题目地址来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-list-elements/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6...原创 2020-01-06 15:38:02 · 206 阅读 · 0 评论 -
队列——链表结构实现(带尾指针的链表)
本文接上一篇队列文章四、链表结构的队列1.带尾指针的链表根据链表结构的特性,在队首插入和删除节点比较容易,时间复杂度为o(1),但是在链表尾部插入和删除,都需要先找到链表尾部前一个节点的位置,这是需要遍历整个链表的,对应的时间复杂度为o(n);因此根据单链表的特性,在链表中添加一个tail节点,用于指向下一个节点即将插入的位置,如下图所示:此时便拥有了带尾指针的链表,而且对链表尾部进...原创 2020-01-06 00:05:38 · 4161 阅读 · 0 评论 -
链表—— 最基础的动态数据结构
package dataStructure.chapter4;/** * @Author: zjtMeng * @Date: 2020/1/1 22:24 * @Version 1.0 */public class LinkedList<E> { private class Node{ public E e; public Nod...原创 2020-01-04 18:11:17 · 207 阅读 · 0 评论 -
队列——数组结构实现(循环队列)
本文接上一篇队列文章三、循环队列循环队列的优点普通队列出队操作开销大:在出队操作时,索引为0后面的所有元素,都需要往前移动一位,元素越多,消耗的时间也越多,时间复杂度为O(N)3.1 循环队列的逻辑当元素较少时(tail位置在front后面),循环队列与普通队列出队操作一样,入队的元素将会放在tail的位置上,随后执行tail++操作;出队时front位置上的元素将会置null,随...原创 2019-12-29 18:10:31 · 751 阅读 · 1 评论 -
队列——数组结构实现(普通队列)
一、队列1. 队列的概念队列的核心理念是:先进先出;队列是一种特殊的线性表:它只允许在表的前端(front)进行删除操作,而在表的后端(tail)进行插入操作;队列和栈都是一种操作受限的线性表,其中进行插入操作的端称之为队尾,进行删除操作的端称之为队首;2.队列的属性getFront():获取队首的元素,但不进行出队操作;getSize():获取队列中元素的数量;isEmpt...原创 2019-12-29 15:52:02 · 583 阅读 · 1 评论 -
栈——封装自己的栈
public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); E peek();}底层用数组实现的栈/** * @auther jintao.zhang * @date 2019-12-17 11:31 */pu...原创 2019-12-22 16:32:16 · 275 阅读 · 0 评论 -
动态数组——二次封装自己的数组
package dataStructure.chapter1;/** * 自定义数组 * @Author: zjtMeng * @Date: 2019/12/15 12:46 * @Version 1.0 */public class Array<E> { private E[] data; private int size; /** ...原创 2019-12-16 00:34:43 · 206 阅读 · 0 评论 -
LeetCode——2.两数相加
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...原创 2019-11-18 11:31:12 · 101 阅读 · 0 评论 -
算法——排序算法类模板
package algorithms.example;/** * @Author: zjtMeng * @Date: 2019/11/14 22:15 * @Version 1.0 */public class Example { /** * 排序算法的实现 * @param a 待排序的数组 */ public static void...原创 2019-11-15 00:24:22 · 225 阅读 · 0 评论 -
剑指offer——斐波那契数列
题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39方法一:递归求解(不推荐)public class FibonacciDemo1 { public static int Fibonacci(int n) { if (n==0) return 0; el...原创 2019-11-11 23:24:53 · 170 阅读 · 0 评论