数据结构
sunlggggg
Just coding
展开
-
树形结构与层次结构相互转换
在层次遍历的基础上,保存层数信息即可public void RTParseDirective(LinkedList<RuleTree> rts){ for(RuleTree rt: rts) { Directive dir = new Directive(); //场景头 dir.setId("16");原创 2016-07-09 14:22:15 · 2550 阅读 · 0 评论 -
将一颗树更新到另一课树
如何跨层次匹配由于自身的失误,导致我半个月的工作都失去了价值;原本可以开始看《权力的游戏》了,但是现在又要从头开始,希望能够在三天内完成这个工作,进入另一个项目。主要思路:待更新树(T1),和目标树(T2),按照层次去bian 主要工作量如下: : 1. 首先根据报警描述生成节点名字,节点名字可以根据多个报警名字进行聚合。 2. 最后匹配到的一层,如果最后匹配到的一层是T2的最后一层,那么原创 2016-07-14 11:58:20 · 353 阅读 · 0 评论 -
数据结构之栈(C语言实现)
好久没有写C语言了,有些生疏,现在来回味一下。主要来实现一下动态栈栈底空元素空用来保存栈底指针,判断栈空,假如没有该空节点,将如法判断是否为栈空。(两个栈顶和栈底都指向第一个元素)结构体typedef struct Node{ int data;//数据域 struct Node * PNext;//指针域 } Node, * PNext;typedef struct Sta原创 2016-10-25 19:45:26 · 397 阅读 · 0 评论 -
数据结构之逆波兰表达式
目的:实现只有加减乘除的简单计算器,包含小数计算。目的将中缀表达式转换为后缀表达式。算法简述。1、首先中缀表达式要是正确的。 2、预处理表达式,正、负号前加0(如果一个加号(减号)出现在最前面或左括号后面,则该加号(减号)为正负号) 。 3、建立一个运算符栈S,为了简化运算,在启动放入辅助运算符“#”,优先级最低。越往栈顶优先级越高。 4、遍历表达式{ 若为数字,直接输出 若当前运算符为原创 2016-11-02 19:07:04 · 586 阅读 · 0 评论 -
数据结构-树-已经知道先根(后根)和中根 构建树(转载)
已知二叉树的先/后根序遍历和中根序遍历可唯一确定一棵二叉树,数据结构试题中常有已知先(后)根序遍历要求确定后(先)根序遍历题型。一般的,我们要按照已知的条件把二叉树画出来,再按图写出结果。这样麻烦的事常让我感到混乱而不得不出错。经过研究我找出了一种不用画图,由先(后)根序遍历和中根序遍历迅速确定遍历结果的办法。谨以此文献给智商与我同级而又不得不研究算法的朋友。 抽象思维太差,用例子来说明吧。下面这转载 2017-03-06 20:11:59 · 3665 阅读 · 0 评论 -
cin/cou效率太慢?试一下 ios::sync_with_stdio(false);
cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱。正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句std::iOS::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了。程序如下:const int MAXN = 10000000;原创 2017-03-06 20:47:18 · 655 阅读 · 0 评论 -
数据结构-图-十字链表
图 1原始图 图 1初始化定点集合 图 1 加入(0,1) 图 1 加入(0,2) 图 1加入2 0 图 1加入(2,3) 图 1加入(3,1) 图 1加入(3,2) 并使得看起来原创 2017-08-19 09:23:12 · 536 阅读 · 0 评论 -
中缀表达式转后缀表达式
一、概念 (A*B + C ) - B ==> AB*C+B- 二、分析(不考虑符号在前) 使用栈来解决问题,为什么? 栈中存储运算符和(和) 前提1 : 对于没有括号的表达式,运算遵循先乘除后加减并且乘除之间无优先级,加减之间无优先级 情况1: A + B - C ===》+ 在 - 之前 对应 1.+入栈 2.+ 出栈 - 出栈 情况2: A * B - C ===》 * 在原创 2017-07-28 19:28:02 · 266 阅读 · 0 评论