随笔分类 -  数据结构

数据结构
摘要:一.中缀变后缀过程分析 给定一个中缀,最后变为后缀的过程其实并不算复杂,下面分析一下过程: 1. 首先面对一个中缀表达式,我们需要两个栈,一个用来存放运算符,即符号栈 operatorstack,一个用来存放数字,运算符,即数字栈 numStack 2. 开始扫描中缀表达式 3.遇到操作数时,我们直 阅读全文
posted @ 2019-07-24 22:40 就是喜欢大晴天 阅读(954) 评论(0) 推荐(0)
摘要:一. 后缀表达式: 后缀表达式,逆波兰表达式,是指运算符位于操作符之后,计算机对该式是从做到右进行计算,计算过程如下例子 二.计算思路 对于后缀表达式的计算,需要一个栈即可, 即遇见数字压栈,遇见运算符从栈中取出两个数,根据运算进行操作, 需要注意的是,减法以及除法都是后出栈作为减数或除数,先出栈的 阅读全文
posted @ 2019-07-24 21:55 就是喜欢大晴天 阅读(162) 评论(0) 推荐(0)
摘要:栈还是用的上一篇的数组模拟栈,并在此之上增加了 判断是否是一个运算符的方法 获取运算符的优先级方法 计算结果方法 查看栈顶元素的方法 四个方法,具体代码如下: 下面给出测试,中缀表达式提前给定好,只涉及到了两位数,对于小括号还有小数点后面会将中缀转为后缀,便于计算 阅读全文
posted @ 2019-07-24 21:40 就是喜欢大晴天 阅读(1134) 评论(0) 推荐(0)
摘要:栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: 数组模拟栈,给出了pop,push,list几个简单方法,下面给出测试类, 阅读全文
posted @ 2019-07-24 21:29 就是喜欢大晴天 阅读(747) 评论(0) 推荐(0)
摘要:1.定义节点类 该节点类中只有孩子的编号,以及指向下一个节点的"指针" 2.定义单向链表类 需要注意的是,josef问题是头尾相连的,在这也就是最后一个节点需要指向第一个节点,如果只有一个节点,那么该节点需要指向节点本身. 解决josef问题,关键是理解最后的josef方法. 3. 写一个简单测试类 阅读全文
posted @ 2019-07-22 10:23 就是喜欢大晴天 阅读(399) 评论(0) 推荐(0)
摘要:前面给出了单项链表的CRUD等操作,下面是对双向链表的一些操作 阅读全文
posted @ 2019-07-17 22:00 就是喜欢大晴天 阅读(256) 评论(0) 推荐(0)
摘要:以下是自己敲的小demo,方便日后复习时候用.主要实现了对有头结点的单向链表的 增加,删除,修改,更新以及反转链表,倒叙输出,查找有效节点数,查找倒数第K个节点的 一些操作,如有冗余,欢迎指正. 阅读全文
posted @ 2019-07-17 21:54 就是喜欢大晴天 阅读(217) 评论(0) 推荐(0)
摘要:1.二维数组 二维数据其实就是高数中的矩阵,在此不做过多的解释 2.稀疏数组 当一个二维数组中大多值为0,或者相同时,我们可以考虑用到稀疏数组,来减少内存 稀疏数组的处理方法: 1)一个有3列的二维数组,记录原数组有几行几列,多少个不同的值 2)不同值的元素的所在行以及列记录在稀疏数组中,从而缩小规 阅读全文
posted @ 2019-07-17 21:45 就是喜欢大晴天 阅读(406) 评论(0) 推荐(0)