
数据结构与算法
文章平均质量分 91
不会算法的程序员不是合格的程序员!
学习不停息!!
不定时分享一些原创或转载的文章。
-小黑-
要不断进步~
展开
-
稀疏矩阵
稀疏矩阵稀疏矩阵的压缩存储稀疏矩阵的概念具有较多零元素且非零元素的分布无规律的矩阵为稀疏矩阵稀疏矩阵的三元组表存储存储方式所有非零元素组成一个三元组表,按行优先顺序,将稀疏矩阵中的非零元素存放在一个有三元组组成的数组中例:5×6的稀疏矩阵如下图所示:其对应的三元组存储表如下图所示:三元组表的基本操作定义稀疏矩阵的三元组结点类定义属性:行号、列号、值定义构造方法:有参、无参public class TripleNode { public int row;原创 2021-04-18 16:50:43 · 1482 阅读 · 0 评论 -
数据结构之串的总结
串的基本概念串的定义串是由0个或多个字符组成的有限序列,又叫字符串。空串长度为0的串,不包含任何字符。空白串由一个或多个空白字符组成的串。子串串的任意个连续字符组成的串子序列。子串的位置是以子串在主串中首次出现时的第一个字符在主串中的位置来表示。主串包含子串的串相应的叫主串。串的比较串的比较是通过组成串中的字符之间的编码来进行的,而字符的编码指的是字符在字符集中的序号。通过两串字符的比较,若不等,则返回第一个不相等的字符的数值差。例: compareTo(s原创 2020-09-01 12:21:09 · 8836 阅读 · 3 评论 -
数据结构之栈与队列总结
栈与队列对比1. 栈什么是栈呢?小时候我们玩过玩具枪就知道,栈就是类似于枪的弹夹,每装入一颗子弹,子弹就会往弹夹底部下去,但当你打子弹出来的时候发现,是从你最后放入弹夹的子弹开始打出的。还有网页的后退、word、ps中的“撤销”操作都运用了栈实现。栈的定义栈是限定仅在表尾进行插入和删除的线性表。有先进后出的特点。特征允许插入和删除的一端叫栈顶(top),另一端叫栈底。插入叫压栈或入栈,删除叫出栈。2. 队列什么叫队列呢?生活中类似于我们排队打饭,在前面的打完饭就先走,其他人在后面依次排队原创 2020-06-21 15:11:47 · 1085 阅读 · 0 评论 -
哈希表查找---------处理冲突的方法
1、哈希函数的定义对于一些查找表来说,它的查找过程是:为给定值按某种顺序和记录集合中各个关键字进行比较的一个过程。这类查找表的平均查找长度都是不为0的。所以,对于查找表,希望ASL(平均查找长度) = 0。只有预先知道所查找的关键字在表中的位置,即要求:记录在表中的位置和其关键字存在一种确定的关系。关键字(key) ----H------>记录在表中位置记录在表中的位置为关键字的某个函数值 H(key) ,通常称这个函数 H(key) 为哈希函数。2、哈希表的定义哈希表定义:根据设定原创 2020-05-27 11:29:20 · 2364 阅读 · 0 评论 -
KMP算法——好牛不吃回头草
KMP算法在朴素算法中,它的算法思想就是:用T串字符依次与S串字符比较,是带回溯的算法。KMP算法是不带回溯的算法,避免了重复遍历的情况,大大提高了效率。实例讲解:例1:若主串为:S = “abcdefgab”、匹配串为:T = “abcdex”使用朴素算法的话,前5个字母相等,“f”与“x”不等,则主串中的变量 i 需要不断回溯比较,如图所示:...原创 2020-05-18 11:57:26 · 1429 阅读 · 0 评论 -
顺序栈实例应用【分隔符匹配问题】
文章目录分隔符有哪些?怎么算匹配成功?分隔符匹配算法实现分隔符有哪些?分隔符的匹配是任意编译器的一部分, 若分隔符不匹配,则程序不可能正确。Java程序中有以下分隔符: “(”和“)”、“{”和"}"、"[“和 “]” 及注释”/"和 "/"。怎么算匹配成功?首先知道栈是先进后出的特点 学会运用栈的入栈和出栈的操作,进行对分隔符的处理。例如:假设在表达式中([]())或[([ ]...原创 2020-04-19 12:07:37 · 526 阅读 · 0 评论