数据结构与算法
文章平均质量分 73
山顶冻人
这个作者很懒,什么都没留下…
展开
-
数据结构的Java实现——顺序表
顺序表的Java实现原创 2011-03-21 18:37:00 · 11451 阅读 · 0 评论 -
数据结构的Java实现——二叉树
二叉树的二叉链表实现、先序、中序、后序遍历实现原创 2011-03-30 14:55:00 · 12258 阅读 · 0 评论 -
数据结构的应用——使用栈和递归实现Hanoi问题求解
<br />package ds.linerlist;import java.util.Stack;/** * 用栈和递归实现N阶汉诺塔。 * @author <a href="mailto:bao.yiming@live.cn" mce_href="mailto:bao.yiming@live.cn">Bao Yiming</a> */public class Hanoi { /** * 将塔座source上按直径由小到大且至上而下编号为1至n *原创 2011-03-28 14:34:00 · 2157 阅读 · 0 评论 -
数据结构的应用——使用栈实现任意迷宫的求解
<br />一个迷宫可以用如下的二维矩阵来表示<br /><br />其中,1表示“墙壁”(红色部分)<br />0表示“通路”白色部分<br />黄色的单元格分别表示迷宫的入口和出口,用二维矩阵来表示则为:<br />{ {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 1, 0, 0, 0, 1, 0, 1}, {1, 0, 0, 0, 0, 1, 1, 0, 0,原创 2011-03-24 21:09:00 · 2567 阅读 · 0 评论 -
数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
<br />算法基于原理: N = (N / d)×d + N % d<br />其中:<br />N——十进制数<br />d——目标数制的基数<br /> <br />以十进制数1348转换到八进制数举例,其运算过程如下:<br /><br />(来源:数据结构 严蔚敏)<br /> <br />由于结果需要逆序输出,故采用栈结构来实现,具体代码如下:<br /> <br />package ds.linerlist;import java.util.Stack;enum SHIFT原创 2011-03-23 16:48:00 · 7169 阅读 · 0 评论 -
数据结构的应用——使用栈实现字符串括号匹配检查
<br />假设表达式中允许包含两种括号:圆括号和方括号,其嵌套顺序随意,及([]())或[([][])]等均为正确的格式,[(])或([())或(()]均为不正确的格式。<br />匹配算法的思想是:<br />首先将第一个括号压入栈,然后从第二个括号开始,如果与栈顶元素能匹配,能将栈顶元素弹出;如果不匹配,则将该元素压入栈中。<br />当带匹配字符串遍历结束后,检查栈是否为空,为空则表示匹配成功了,如果非空则表示还有括号未能匹配,即该字符串匹配失败。<br />具体代码:<br /> <br />pa原创 2011-03-23 20:32:00 · 6372 阅读 · 2 评论 -
数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
<br />算法基于原理: N = (N / d)×d + N % d<br />其中:<br />N——十进制数<br />d——目标数制的基数<br /> <br />以十进制数1348转换到八进制数举例,其运算过程如下:<br /><br />(来源:数据结构 严蔚敏)<br /> <br />由于结果需要逆序输出,故采用栈结构来实现,具体代码如下:<br /> <br />package ds.linerlist;import java.util.Stack;enum SHIFT原创 2011-03-23 16:44:00 · 5700 阅读 · 0 评论 -
数据结构的应用——一元N次多项式的加法
<br /><br /><br /> <br />采用ArrayList来实现多项式,为免要求输入时按升幂输入,可以调用Collections的sort方法。<br />建立每个项的类PolyItem,实现Comparable接口以便ArrayList的排序,代码如下:<br />/** * 多项式的项,并实现了项的大小比较 * @author Bao Yiming */class PolyItem implements Comparable<PolyItem> { Integer原创 2011-03-23 15:19:00 · 2019 阅读 · 0 评论 -
数据结构的Java实现——栈和队列
<br />栈(Stack)作为一个先进后出(FILO)的线性结构,只支持在栈顶的插入和弹出。<br />队列(Queue)作为一个先进先出(FIFO)的线性结构,支持在队首获取元素,在对尾插入元素。<br /> <br />栈的实现:<br /><br /> <br />package ds.linerlist;/** * 栈的实现 * @param <E> * @author <a href="mailto:bao.yiming@live.cn" mce_href="mailt原创 2011-03-21 22:35:00 · 7055 阅读 · 0 评论 -
数据结构的Java实现——单链表
单链表的Java实现原创 2011-03-21 21:23:00 · 6130 阅读 · 4 评论 -
KMP算法
KMP模式匹配算法,next函数转载 2011-03-29 15:03:00 · 740 阅读 · 0 评论