
数据结构
# 数据结构
阿呆布衣酷
纯干货学习笔记:无盈利目的,只想帮自己成长
展开
-
B+树
B+树学习:第7遍/** * B+树的定义: * * 1.任意非叶子结点最多有M个子节点;且M>2;M为B+树的阶数 * 2.除根结点以外的非叶子结点至少有 (M+1)/2个子节点; * 3.根结点至少有2个子节点; * 4.除根节点外每个结点存放至少(M-1)/2和至多M-1个关键字;(至少1个关键字) * 5.非叶子结点的子树指针比关键字多1个; * 6.非叶子节点的所有key按升序存放,假设节点的关键字分别为K[0], K[1] … K[M-2], * 指向子女的指原创 2020-09-10 01:51:18 · 215 阅读 · 0 评论 -
红黑树
红黑树学习:第7遍红黑树的java实现(备注:中序遍历、查找、最大、最小、前驱、后继与二叉树基本一致)public class RBTree { /** * 根节点 */ private static Node root; /** * nil节点是红黑树的叶子节点不同于二叉树的叶子节点 * 颜色为黑色,key、left、right、parent可以是任意允许的值 * 这里key设置为0,left、r原创 2020-09-10 01:47:21 · 152 阅读 · 0 评论 -
二叉树
二叉树学习:第7遍二叉树的java实现public class BinaryTree { /** * 根节点 */ private static Node root; static class Node { int key; Node left, right, parent; public Node(int key) { this.key = key原创 2020-09-10 01:46:02 · 132 阅读 · 0 评论 -
队列
队列学习:第7遍队列队列是一种运算受限制的线性表,元素的添加操作在表的一端进行,而元素删除在表的另一端进行(出队列也就是删除),允许插入的一段称为队尾,允许删除的一段称为队头public class MyQue2<E> { private Object [] obj = new Object[10]; private int size; private int rear; private int first; pub原创 2020-09-10 01:43:29 · 169 阅读 · 0 评论 -
栈
栈学习:第7遍栈一种先进后出的数据结构入栈和出栈是栈的两个主要操作,每一次栈进栈的元素总是成为当前的栈顶元素,而每一次出栈的元素总是当前的栈顶元素/* * 用数组来实现栈,规定新添加的元素总是在原有数组的后面 * 栈低为下标为0的值 */public class MyStrack<E> { private Object[] obj = new Object[10]; private int size;原创 2020-09-10 01:42:17 · 123 阅读 · 0 评论 -
双向循环链表
双向循环链表学习:第7遍双向循环链表核心思想一样,只不过就是在node节点里面不能只定义两个属性了,应该定义三个属相,数值data,上一个节点引用prev,下一个节点引用nextnode节点的定义private E data; private Node4<E> prev; private Node4<E> next; public Node4(E data) { this.data = data; }原创 2020-09-10 01:40:47 · 186 阅读 · 0 评论 -
单向循环链表
单向循环链表学习:第7遍单向循环链表主要思想和单向链表一致,只不过就是将单向链表的last节点指向首节点1.添加元素public boolean add(E data){ //用顺序存储实现的时候 我们只需要保存数据就行 维护下标 Node<E> node = new Node<E>(data); //非顺序存储 ----- 不仅要将该元素保存 你还要维护线性关系 if(first == null){原创 2020-09-10 01:38:33 · 198 阅读 · 0 评论 -
线性表的链式表示
线性表的链式表示学习:第7遍链表(难点)用一组任意的存储单元来存放线性表的数据元素,这组存储单元可以是连续的,可以是非连续的(如果用数组来实现链表,意义不大)线性表的链式表示由来:在计算机中,如果全部用数组来实现数据的存储,那么零散的内存则无法进行利用,而且在进行频率较高的删除和添加时候,数组执行效率低下,因为每删除一个元素,后面的元素都得向前移动,所以为了提高内存利用率以及满足频率较高的数据的删除增加,用链表实现效率大大提高思想:线性表的链式存储结构使用一组任意的存储单元来实现存放线性表的数原创 2020-09-10 01:35:15 · 227 阅读 · 0 评论 -
线性表数组实现
线性表数组实现学习:第7遍线性表顺序表示(用数组实现,比较简单)线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素,在高级语言程序设计中,数组具有随机存取的特性,因此通常都用数组来描述数据结构中的顺序存储结构,对于线性表,可以用一维数组来实现1. 顺序表的初始化/** *定义一个Object类型的数组,可存储任意类型的数据 *然后对其初始化 */ private Object [] obj; private原创 2020-09-10 01:29:28 · 649 阅读 · 0 评论