01 2021 档案
摘要:实现的源码如下: import { Interface_Queue } from "../Interface_Queue"; import { DataStruct_BinaryMaxHeap } from "./DataStruct_BinaryMaxHeap"; /** * Autor: Cre
阅读全文
摘要:源码如下: import { DataStruct_Array } from "../02-Arrays/DataStruct_Array"; //最大二叉堆也需要具有可比较性 type Comparable = { compareTo(that: Comparable): number; equa
阅读全文
摘要:源码如下: import { DataStruct_LinkedList } from "../04-Linked-List/DataStruct_LinkedList"; import { Interface_Set } from "../Interface_Set"; /** * Autor:
阅读全文
摘要:源码如下: import { Interface_Map } from "../Interface_Map"; class Node<K, V> { public key: K; //键 public value: V;//值 public next: Node<K, V>; public cons
阅读全文
摘要:源码如下: import { DataStruct_BinarySearchTree } from "../06-Binary-Search-Tree/DataStruct_BinarySearchTree"; import { Interface_Set } from "../Interface_
阅读全文
摘要:实现Map类之前,需要先自实现Interface_Map<K, V>的接口,源码如下 export interface Interface_Map<K, V> { add(k: K, v: V): void; remove(k: K): V; contains(k: K): boolean; get
阅读全文
摘要:二分搜索树也称二叉搜索树,它是一种树形的数据结构,如下图 它有如下性质: 1.所有的节点都比左子树中的节点大,如图中9和15 2.所有的节点都比右子树中的节点小,如图, 由于以上两条性质的成立,所以对一二叉树存在这样的性质: 二叉查找树的最小节点位于最顶端节点的最左边的子树行的末尾,例如图中3 二叉
阅读全文
posted @ 2021-01-21 17:26
CYNLINQ
摘要:了解递归,掌握递归,对于学习更高级的数据结构是必须要的。什么是递归,递归的性质: 1.自己调用自己 2.存在结束条件 只有满足以上两点,这个递归才算是合法的递归,递归的代码: test1(x) { console.log(x);//没有结束条件,死递归 this.test1(x - 1); } te
阅读全文
摘要:上几篇文章中,对于队列,链表的优化,都是出于数据结构的算法事件复杂度的优化考虑的,那什么是算法时间复杂度?通俗一点,就是你写的代码执行效率怎么样,如果执行效率很low,那你写的代码算法时间复杂度就很高,在计算算法时间复杂度时,有以下几种: O(1):比如直接输出console.log这种概念 O(n
阅读全文
摘要:使用链表来实现队列,源码如下: import { Interface_Queue } from "../Interface_Queue"; class Node<T>{ public e: T; public next: Node<T>; public constructor(e: T, next:
阅读全文
摘要:使用之前实现的链表来实现栈,源码如下: import { Interface_Stack } from "../Interface_Stack"; import { DataStruct_LinkedList } from "./DataStruct_LinkedList"; /** * Autor
阅读全文
摘要:链表的概念,使用文字描述过于苍白,用一张图解释: 从图中可以看出链表的特性: 1.存储在链表中元素时无顺序的,图中我故意打乱了排列的情况,就是为了说明这一点,如果仍然无法理解这点,可以对比下数组来看看链表中的各个元素的关系 2.链表中的各个元素之前的关联关系,由每个元素中的next这个属性来进行链接
阅读全文
摘要:在上一篇中,实现的是一个数组队列,但是数组队列的时间复杂度高,在本篇实现了一个循环队列LoopQueue,以下是源码: /** * Autor: Created by 李清风 on 2020-12-17. * Desc: 数组循环队列(列表),用来提高效率,降低出队、入队的时间复杂度到O(1),关键
阅读全文
摘要:队列的性质就是:先入先出,想象一下在食堂排队打饭,先来的人,先打,后来的人,排在队伍后面,这里面就多少反映出了队列的性质,先进先出,是否需要使用到队列,还是需要根据自己的需求来判断,一个队列应该提供一下接口: 1.dequeue():出队操作 2.enqueue():入队操作,放在对尾巴那里 3.g
阅读全文
摘要:栈是一种先入后出的数据结构,最先进入的元素,却是最后出来,开发中,是否需要用到栈,只要记住它的这条特性就好了,这里我使用之前实现的DataStruct_Array类作为栈的底层容器实现,我们都知道对于栈来说,它需要提供给用户以下接口: 1.getSize():获取栈的实际数目 2.isEmpty()
阅读全文
摘要:数组是数据结构中最基础、最简单的一种数据结构了,同时也是我们开发过程中,使用频率最高的,我使用了TypeScript实现了这个基础的数据结构。 数组类内部,需要提供给用户以下接口: 1.getSize():获取数组大小(也就是数组实际存放了多少元素) 2.getCapacity():获取数组容量(用
阅读全文

浙公网安备 33010602011771号