数据结构
文章平均质量分 63
不知心动
这个作者很懒,什么都没留下…
展开
-
图的基本实现和DJS算法(Java实现)
图图是一种各个数据对象间存在多对多关系的数据结构图的接口Interfacepublic interface IGraph { void createGraph();//创建图 int getVexNum();//统计顶点数 int getArcNum();//统计边数 Object getVex(int v) throws Exception;//返回v位置对应的顶点 int locateVex(Object vex);//查找vex在图中的位置 int firstAdjVex(int v原创 2021-12-13 23:28:29 · 834 阅读 · 0 评论 -
栈的应用之中缀表达式转后缀表达式及后缀表达式的计算
问题引入:在计算机中,后缀表达式的运行效率要高于中缀表达式,而中缀表达式转后缀表达式可以通过栈来实现,那么什么是中缀表达式和后缀表达式呢?中缀表达式中缀表达式其实就是我们平常使用的一些计算的式子,比如a+b,ab,或者再稍微复杂一点的a+bc-d/e后缀表达式后缀表达式是将操作符至于操作数之后的一种式子,运算规则是遇到操作符将前面两个操作数进行相应的运算(一般情况下操作符是二目运算符,这里的也只以二目运算符为例),比如上面的中缀表达式转换成对应的后缀表达式,分别是:ab+,ab*,abc*+de/原创 2021-11-14 22:59:59 · 536 阅读 · 0 评论 -
队列及优先队列(Java实现)
引入在我们的日常生活中,有许多排队的情形,像在食堂排队打饭,在购票窗口排队购票等等,像这种满足成员元素先进先出特性的问题可以抽象成队列问题(不考虑队尾或者队伍中间的人由于种种因素中途离开的情形),那么什么是队列呢?队列(Queue)队列也是线性表的一种,和栈一样是一种特殊的线性表,只不过队列满足的特点是先进先出(FIFO或者FCFS–>First Come First Service),而后者的特点是先进后出(FILO)。ADT作为一个队列,它要实现的基本功能如下:置空,判空,获取队列长度,原创 2021-10-24 21:21:02 · 670 阅读 · 0 评论 -
栈的应用之分隔符匹配问题(Java实现)
问题引入在Java的表达式中分隔符有左分隔符("(","{","[","/*")和 右分隔符(")","}","]","/"),那么我们应该怎样编写一个程序来判断一个字符串表达式中的分隔符是否完全匹配呢?算法分析在解决分隔符匹配问题中常见的错误思想:通过两个计数器分别记录左分隔符和右分隔符的个数,如果扫描完字符串两个计数器记录的值相等则认为分隔符是匹配的。通过这种算法得到的结果其实很有可能是错误的,因为这种算法并没有考虑分隔符匹配具有的先后性,像"))(("这样的字符串得到的结果也会是匹配的,但是很原创 2021-10-16 12:22:14 · 421 阅读 · 1 评论 -
栈——初步认识(Java实现)
今天来学习一下一个比较常用的数据结构——栈栈栈其实就是一个线性表,只不过比较特殊,特殊在它的插入删除操作都只在栈顶进行,符合后进先出(LIFO)的规则ADT(抽象数据类型)一个栈基本要实现的功能有哪些呢?一个栈要实现的基本的功能有:将栈置空,判断栈是否为空,获取栈的长度,获取栈顶元素,出栈(同时获取出栈的栈顶元素)知道这些就定义栈的接口IStack了:public interface IStack { public void clear();//置空 public boolean isEm原创 2021-10-16 11:43:49 · 303 阅读 · 0 评论