week07专题

week07_day06_Map

Map接口概述: 将键映射到值的对象。(我们可以根据键快速地查找到值) Map 中键是唯一的 (不能包含重复的键) 每个键最多只能映射到一个值。 关于映射: Map接口API: V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当 m.containsKey(k) 返回 true 时,

week07_day05_Set

什么是hash表 hash表是一种二维结构,管理着一对对<Key,Value>这样的键值对,Hash表的结构如下图所示: 如上图所示,左侧部分是一个一维顺序存储的数组,数组单元格里的内容是指向另一个链式数组的指针。图中绿色部分是<Key,Value>,绿色部分右侧的白色部分是指向下一对键值对的指针。 hash表的工作原理: (1).第一步 先根据给定的key和散列算法得到具体的散列值,也就是对

week07_day04_Tree02

删除:分三种情况处理 a. 如果要删除结点没有孩子,那么直接将该结点删除就行了。 b. 如果要删除结点只有一个孩子,那么需要就父亲结点对应的指针,指向孩子结点。 c. 如果要删除结点有两个孩子,那么我们可以找到这个结点的右子树中最小结点 (或者 左子树中最大结点),把它替换到要删除的结点上,然后再删除掉这个最小结点。 如果搞不懂remove方法,就假设删除结点C,手动执行一下代码 关于层次遍

week07_day03_Tree

二叉查找树(可以根据这棵树查找结点): 又叫二叉排序树(中序遍历的结果是有序的)。要求树中的结点可以按照某个规则进行比较。 左子树中所有结点的key比根结点的key小,并且左子树也是二叉搜索树。 右子树中所有结点的key比根结点的key大,并且右子树也是二叉搜索树。 Q1: BST 能存储null吗?为什么? 不能,BST要求元素能进行比较 Q2: BST 能存储key相同的对象吗?为什么

week07_day02_Queue

栈,底层实现一般是单链表 队列,底层实现一般是数组 队列的API: 入队 (enqueue):在队尾添加元素,O(1) 出队 (dequeue):从队头删除元素,O(1) 判空 (isEmpty):判断队列是否为空,方便遍历,O(1) 长度(size) 查看队头元素(peek) 队列的顺序映象(顺序队): package com.cskaoyan.queue;import com.cska

week07_day01_自己实现LinkedList、MyStack

head 和 tail 是两个哨兵结点,不存储值。 MyList和MyIterator接口的代码和上节课一模一样 MyList: package com.cskaoyan.list;/*** @author shihao* @create 2020-05-15 17:28*///想让MyArrayList和LinkedList也可以实现自己的foreach循环,// 就得让MyList实