
数据结构
数据结构Java版
吴声子夜歌
个人学习记录
展开
-
数据结构--广义表
广义表的定义带表名的广义表表示广义表的特性线性结构多层次结构,有深度可共享可递归广义表抽象数据类型package pers.zhang.genList;/** * @author zhang * @date 2020/1/20 - 10:57 * * 广义表抽象数据结构 */public interface GGenList<T> { ...原创 2020-01-20 11:36:41 · 900 阅读 · 0 评论 -
数据结构--稀疏矩阵常用的三种压缩存储(顺序、行单链表、十字链表)
稀疏矩阵表示稀疏矩阵的三元组:稀疏矩阵常用的压缩存储共有3种:顺序存储单链表存储十字链表存储顺序存储稀疏矩阵三元组顺序表:表示稀疏矩阵非零元素的三元组:public class Triple implements Comparable<Triple>{ //行号,列号,元素值 int row, column, value; pu...原创 2020-01-19 15:14:33 · 14589 阅读 · 1 评论 -
数据结构--三角矩阵的压缩存储
三角矩阵三角矩阵的常用压缩方式有两种:线性压缩使用三角形的二维数组压缩线性压缩存储三角矩阵下三角矩阵:上三角矩阵:以下三角矩阵的线性压缩存储为例,进行实现:package pers.zhang.array;/** * @author zhang * @date 2020/1/19 - 13:34 * * 下三角矩阵线性压缩存储 */public cl...原创 2020-01-19 13:56:47 · 13629 阅读 · 3 评论 -
数据结构--数组、使用数组表示矩阵
数组一维数组:多维数组:行主序:列主序:1. 静态顺序存储结构:2. 动态二维数组的存储结构使用数组表示矩阵矩阵类的抽象描述:package pers.zhang.array;/** * @author zhang * @date 2020/1/19 - 10:36 * * 矩阵接口 */public interface MMatrix { ...原创 2020-01-19 13:24:19 · 2357 阅读 · 0 评论 -
数据结构--串的实现
串串定义:S=“s0 S1 … Sn-1”子串:“at” 是 “data” 的子串串比较:两个串可以比较收否相等,也可比较大小。串的顺序存储结构:串的链式存储结构串的抽象数据类型package pers.zhang.string;/** * @author zhang * @date 2020/1/18 - 13:19 * * 串的抽象数据类型 */publi...原创 2020-01-18 14:01:29 · 822 阅读 · 0 评论 -
数据结构--优先队列实现、模拟线程调度
优先队列package pers.zhang.queue;import pers.zhang.linearList.SortedSinglyLinkedList;/** * @author zhang * @date 2020/1/17 - 13:23 * * 优先队列 */public class PriorityQueue<T extends Comparable&...原创 2020-01-17 14:18:26 · 421 阅读 · 1 评论 -
数据结构--队列实现(顺序循环队列、链式队列)
队列队列(queue)是一种特殊的线性表,其插入和删除操作分别在线性表的两端进行。队列的抽象数据类型package pers.zhang.queue;/** * @author zhang * @date 2020/1/17 - 11:35 * * 队列的接口 */public interface QQueue<T> { //判断队列是否为空 ...原创 2020-01-17 12:57:03 · 1268 阅读 · 0 评论 -
数据结构--栈的应用(括号匹配、表达式求值(中缀转后缀))
栈的应用栈是嵌套调用机制的实现基础使用栈以非递归方式实现递归算法判断表达式中圆括号是否匹配package pers.zhang.stack;/** * @author zhang * @date 2020/1/16 - 14:42 * * 栈应用:括号匹配 */public class Exp_bracket { //判断expstr表达式中的圆括号...原创 2020-01-16 15:55:09 · 1635 阅读 · 0 评论 -
数据结构--栈的实现(顺序栈和链栈)
栈栈(stack)是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行。栈的抽象数据类型package pers.zhang.stack;/** * @author zhang * @date 2020/1/16 - 14:05 * * 栈接口,描述栈的抽象数据类型,泛型参数T表示数据元素的数据类型 */public interface SStack<T>...原创 2020-01-16 14:38:25 · 2478 阅读 · 0 评论 -
数据结构--排序循环双链表
排序循环双链表实现package pers.zhang.linearList;/** * @author zhang * @date 2020/1/15 - 15:16 * * 按升序排序的循环双链表类,继承循环双链表类,E必须实现Comparable<T>接口,支持对象可比较大小 */public class SortedDoublyLinkedList<...原创 2020-01-15 15:26:51 · 1265 阅读 · 0 评论 -
数据结构--循环双链表实现、详解
双链表双链表的插入和删除操作在p节点之前插入值为x的节点在p节点之后插入值为x的节点双链表的删除操作双链表节点package pers.zhang.linearList;/** * @author zhang * @date 2020/1/15 - 11:06 * 双链表节点类 */public class DLinkNode<T> { ...原创 2020-01-15 15:15:41 · 1979 阅读 · 0 评论 -
数据结构--循环单链表
循环单链表实现:package pers.zhang.linearList;/** * @author zhang * @date 2020/1/14 - 15:16 * * 循环单链表 */public class CirSinglyLinkedList<T>{ //头指针,指向循环单链表的头结点 public Node<T> he...原创 2020-01-14 15:29:07 · 547 阅读 · 0 评论 -
数据结构--可排序单链表
可排序单链表实现package pers.zhang.linearList;/** * @author zhang * @date 2020/1/14 - 14:22 * * 按升序排序的单链表类,继承单链表类,T必须实现Comparable<T>接口,支持对象可比较大小 */public class SortedSinglyLinkedList<T ext...原创 2020-01-14 14:32:25 · 461 阅读 · 0 评论 -
数据结构--线性表的链式存储结构(单链表完全实现)、单链表反转
线性表的链式存储结构单链表节点类public class Node<T> { //数据域,保存数据元素 public T data; //地址域,引用后继节点 public Node<T> next; public Node(){ this(null,null); } public Node...原创 2020-01-14 14:21:30 · 786 阅读 · 1 评论 -
约瑟夫环--使用顺序表解决、使用公式法解决
约瑟夫环问题N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。使用顺序表求解package pers.zhang.linearList;/** * @author zhang * @date 2020/1/13 - 18:55 * * 使用顺序表求解约瑟夫环问题 */public ...原创 2020-01-13 19:33:53 · 1780 阅读 · 0 评论 -
数据结构--线性表之顺序表实现
概述线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。基本概念对于同一个线性表,其每一个数据元素的值虽然不同,但必须具有相同的数据类型;数据元素之间具有一种线性的或“一对一”的逻辑关系。第一个数据元素没有前驱,这个数据元素被称为开始节点;最后一个数据元素没有后继,这个数据元素被称为终...原创 2020-01-13 18:18:02 · 709 阅读 · 0 评论