数据结构与算法
夕阳不近人
是员不是猿。
展开
-
数据结构与算法学习总结(三)——栈的类定义与实现方式
前面已经提及了多次,栈是一种操作受限的线性表,其操作的规则是后进先出(Last In First Out),栈的主要操作有进栈(PUSH)、出栈(POP),主要应用有表达式求值(下篇博客会详细剖析前缀、中缀、后缀表达式与栈的应用)、消除递归、深度优先搜索等。抽象数据类型这回开始用Java来编写了,应该更容易看懂了。package top.zhanglugao.stack;/***...原创 2019-02-16 13:35:53 · 417 阅读 · 0 评论 -
数据结构与算法学习总结(一)——概念介绍
Spark进行到机器学习的部分了,这部分会比较注重算法,所以我打算重新回顾一下数据结构与算法的相关内容,这一次重新学习我是参照中国大学MOOC(非常强大,很多名校的课程都有)上北大的数据结构与算法的教程,这里主要是做一些学习内容的总结,同时还在看两本书,估计更新进度不会快。编写计算机程序的目的是为了解决实际的应用问题,所以大多数时候我们需要对问题进行抽象,分析并且抽象化问题的需求,再去建立问题...原创 2019-02-08 22:55:57 · 466 阅读 · 0 评论 -
数据结构与算法学习总结(五)——前缀、中缀、后缀表达式与栈的应用
前缀、中缀、后缀表达式的定义前缀表达式、中缀表达式、后缀表达式是四则运算的三种不同的表达方式。中缀表达式就是我们常使用的运算表达式,例如:(1+2)*3/(4+5)前缀表达式又被称为波兰式,它的特点是运算符位于操作数的前面。例如上面的表达式用前缀表达式表示的结果为:后缀表达式又被称为逆波兰式,它的特点是运算符位于操作数的后面。例如上面的表达式用后缀表达式表示的结果为:中缀表达式...原创 2019-02-17 22:43:24 · 757 阅读 · 0 评论 -
数据结构与算法学习总结(二)——线性表
线性结构介绍线性表之前我们先了解一下线性结构,上篇说到数据结构从逻辑上分为线性结构和非线性结构两种。组成线性结构由一个B=(K,R)的二元组组成,其中K={a0,a1,...,an-1},R={r},K中存储的是线性结构集合中的元素,R维护节点之间的关系。对于线性结构中的非空集合K一定有一个唯一的开始结点,它没有前驱结点,只能有一个唯一的直接后继结点。还会存在一个唯一的终止结点,它...原创 2019-02-11 14:09:25 · 658 阅读 · 0 评论 -
数据结构与算法学习总结(四)——队列
基本介绍与栈相对,队列是一种先进先出(First In First Out)的线性表,操作的规则是按照到达的顺序来释放元素,所有的插入在表的一端进行,而所有的删除都在表的另一端进行。主要元素队头(front)队尾(rear)主要操作入队列(enQueue)出队列(deQueue)取队首元素(getFront)判断队列是否为空抽象数据类型语言仍然采用Jav...原创 2019-02-17 20:51:48 · 370 阅读 · 0 评论 -
数据结构与算法学习总结(六)——字符串的模式匹配算法
基本概念字符串是一种特殊的线性表,即元素都是”字符“的线性表。字符是组成字符串的基本单位,字符的取值依赖于字符集,例如二进制的字符集为0,1,则取值只能为(0,1),再比如英语语言,则包括26个字母外加标点符号。例如"abcde"就是一个字符串,其中'a','b','c','d','e'都分别是串中的字符,串的长度是5。线性表的存储结构同样适用于字符串,但是因为链式结构的额外开销,...原创 2019-02-24 23:11:56 · 1282 阅读 · 0 评论 -
数据结构与算法学习总结(七)——二叉树的概念
二叉树的定义二叉树(binary tree)由结点的有限集合构成这个有限集合或者为空集(empty),或者为由一个根节点(root)及两颗互不相交、分别称作这个根的左子树(left bustree)和右子树(right subtree)的二叉树组成的集合。二叉树的五种基本形态二叉树可以是空集合,因此根可以有空的左子树或右子树,或者左右子树都为空。二叉树相关术语结点-...原创 2019-03-06 15:57:11 · 600 阅读 · 0 评论