随笔分类 - 数据结构与算法
摘要:树 1. 树的定义 树的特点: 每个结点有0个或者多个子结点 没有父结点的结点为根节点 每一个非根结点只有一个父结点 每个结点及其后代结点整体上可以看做一棵树,称为当前结点的父结点的一个子树 2. 树的相关术语 结点的度:一个结点含有的子树的个数称为结点的度(也可以理解为子结点的个数) 叶结点:度为
阅读全文
摘要:队列 队列是一种先进先出的数据结构,是一种只能在一段插入,在另一端删除的线性表,按照先进先出的原则存储数据。 1. 队列的API设计 2. 队列的代码实现 public class Queue<T>{ private Node head; private int N; private Node la
阅读全文
摘要:栈(Stack) 栈是一种基于先进后处的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读取数据时从栈顶开始弹出数据。 1. 栈的API设计 2. 栈的代码实现 public class Stack<T>{ priv
阅读全文
摘要:链表是一种物理存储单元上非连续非顺序的存储结构,存储元素的逻辑顺序是通过链表中的指针来链接次序实现的。 单向链表 单向链表是链表的一种,由多个结点构成,每个结点由一个数据域和一个指针域组成,数据域用来存储数据,指针域用来指向其后继结点。链表的头节点数据域不存储数据,指针域指向第一个真正存储数据的结点
阅读全文
摘要:顺序表在计算机内存中以数组的形式进行保存 1. 顺序表的API设计 2. 顺序表的代码实现 import java.util.Objects; public class SequenceList<T> { //记录当前数组中元素的个数 private int N; //储存元素的数组 private
阅读全文
摘要:插入排序(Insertion sort) 插入排序原理 插入排序原理:插入排序的原理类似于平时打扑克牌进行排序时的原理 把所有的元素分为两组,一组为已排序的另外一组为没有排序的(如果没有已排序的,默认第一个元素为已排序的) 找到未排序的组中的第一个元素,向已经排序的组中进行插入 倒叙遍历已经排序的组
阅读全文
摘要:选择排序(Selection Sort) 选择排序原理 在每一次的遍历中,都假定第一个索引处的值为最小元素,在与后面索引处的值分别进行比较,如果当前索引的值大于某个索引处的值,则假定其索引处的值为最小值,在遍历完成后找到最小值所在的索引。再交换最小值索引和第一个位置的索引。再重复上面的操作,完成排序
阅读全文
摘要:冒泡排序(Bubble Sort) 冒泡排序的算法原理 比较相邻的元素,如果前一个元素的值比后一个元素的值大,就交换元素的位置,对每一对元素做相同的工作。 第一次排序:比较4和5的大小,4<5,不交换位置。比较5和6的大小,5<6不交换。比较6和3的大小,6>3,交换位置。再比较6和2的大小,6>2
阅读全文

浙公网安备 33010602011771号