摘要: 例四、汉诺塔 1、问题描述 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间 阅读全文
posted @ 2017-07-10 20:29 鹏达君 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 例三、算术表达式求值1、问题描述当一个算术表达式中含有多个运算符,且运算符的优先级不同的情况下,如何才能处理一个算术表达式?????2、思路首先我们要知道表达式分为三类: ①中缀表达式:a+(b-c/d)*e ②前缀表达式+a*-be ③后缀表达式abcd/-e*+ 由于运算符有优先级,所以在计算机 阅读全文
posted @ 2017-07-10 20:25 鹏达君 阅读(2857) 评论(0) 推荐(0) 编辑
摘要: 例二、分隔符匹配问题 1、问题描述 编译器在编译一段代码时,首先进行的就是分隔符的匹配,常见的分隔符有{ } [ ] ( )/* */ 2、思路 首先要知道的一件事就是:分隔符运行嵌套,而且,读入的顺序和处理的顺序相反,很显然是用栈。 算法描述如下: 从左到右扫描java语句,从语句中不断的读取字符 阅读全文
posted @ 2017-07-10 20:15 鹏达君 阅读(264) 评论(0) 推荐(0) 编辑
摘要: package org.Stone6762.MStack.adopt; import java.util.Scanner; import org.Stone6762.MStack.imple.LinkStack; /** * @author_Stone6762 * @Description_大数相加 阅读全文
posted @ 2017-07-10 18:08 鹏达君 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 1.栈的基础概念 a.栈是限制在表的一端进行插入(进栈)和删除(出栈)运算的线性表,而进行这两个操作,需要一个头指针。b.通常称插入,删除的这一端为栈顶,另一端为栈底。c.当表中没有元素时称为空栈。假设栈S=(a1,a2,...an),a1称为栈底元素,an称为栈顶元素。 注意:栈是按后进先出的原则 阅读全文
posted @ 2017-07-10 17:48 鹏达君 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 引言:这一篇文章,我们研究的是匹配算法,而研究算法的步骤是先搞懂逻辑,再想实现。废话先不说,现在让我们进入今天的内容。 阅读全文
posted @ 2017-07-10 17:37 鹏达君 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 引言:字符串是由字符组成的有限序列,从逻辑结构看,串是一种“特殊的线性表”,其特殊性在于线性表中的每个元素是一个字符。作为 一种抽象数据类型,串有自己的一组操作,其操作特点与线性表不同。 1.串的基本概念a.串定义:串(string)是由零个或多个字符组成的有限序列,又叫字符串。一般记为 s=”a1 阅读全文
posted @ 2017-07-10 17:15 鹏达君 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 1.基础知识 a.双链表结点的结构:其由前序元素地址,数据域,后继元素地址组成。 b.双链表结点的连接方法:先声明该结点,可以在内部也可以利用其特性来表明前序结点和后继结点是什么,之后同时还需要说明“其前序结点的后继地址为该结点”和”其后继结点的前序地址为该结点。(本质:双向) 2.循环双链表的实现 阅读全文
posted @ 2017-07-10 16:19 鹏达君 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 1.链式存储结构实现 单链表和双链表(这边讲单链表)。 2.基础概念 a.结点:结点由数据域和地址域(链)两部分组成。而结点整体在效果上可以看作是该结点的地址(指针)。这个地址域一般是后继元素的地址(即下一个结点的总体)。所以最后一个元素的地址域为^,其表示空,即没有后续元素。b.单链表:每个结点只 阅读全文
posted @ 2017-07-10 12:33 鹏达君 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 引言(重点): 1.线性表的概述 2.线性表的抽象数据类型描述 3.线性表的实现方式 4.线性表的具体实现 5.每种具体实现的分析 1、什么是线性表?线性表(Linear List):由同类型元素构成有序序列的线性结构。 特征:1.表中元素个数称为线性表的长度2.线性表没有元素时,称为空表3.表起始 阅读全文
posted @ 2017-07-10 12:04 鹏达君 阅读(332) 评论(0) 推荐(0) 编辑