java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
2019-12-21 22:25:36 21KB java 数据结构 二叉树 递归
1
第三次上机—语法分析1 目的:熟练掌握自上而下的语法分析方法,并能用C++程序实现。 要求: 1. 使用的文法如下: E ® TE ¢ E ¢ ® + TE ¢ | e T ® FT ¢ T ¢ ® * FT ¢ | e F ® (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可以参考书上介绍的同步记号集合来处理。 可能的出错情况:idid*id, id**id, (id+id, +id*+id …… 4. 输入串以#结尾,输出推导过程中使用到的产生式。例如: 输入:id+id*id# 输出:E ® TE ¢ T ® FT ¢ F ® id E ¢ ® + TE ¢ T ® FT ¢ …… 如果输入串有错误,则在输出中要体现是跳过输入串的某些记号了,还是弹栈,弹出某个非终结符或者是终结符了,同时给出相应的出错提示信息。比如: idid*id对应的出错信息是:“输入串跳过记号id,用户多输入了一个id”; id**id对应的出错信息是:“弹栈,弹出非终结符F,用户少输入了一个id” (id+id对应的出错信息是:“弹栈,弹出终结符 ) ,用户少输入了一个右括号(或者说,括号不匹配)” 有余力的同学可进一步考虑如下扩展: 1. 将递归下降方法和非递归预测分析方法都实现 2. 在语法分析的过程中调用第二次上机的结果,即利用词法分析器来返回一个记号给语法分析器。 3. 编写First和Follow函数,实现其求解过程。 测试文法: A->BCDE B->aBA|ε C->F|ε D->b|c|ε E->e|ε F->d|ε
2019-12-21 21:58:39 10KB 递归 LL(1) 自上而下
1
二叉树的遍历,包括递归以及非递归的源代码,在vc6中可以直接运行,本人亲测!
2019-12-21 21:31:51 38KB 二叉树 非递归遍历
1
二叉树递归非递归遍历(递归前中后,非递归前中后,层次遍历)
2019-12-21 20:52:09 5KB c语言
1
建立文法及其LL(1)分析表表示的数据结构,设计并实现相应的预测分析器,对源程序经词法分析后生成的二元式代码流进行预测分析,如果输入串是文法定义的句子则输出“是”,否则输出“否”。
2019-12-21 20:44:27 3KB 非递归预测
1
运用了广度优先设计了走迷宫的算法,图形化界面,通过鼠标在迷宫内设置障碍,然后可以显示迷宫的一条最短的路径!
2019-12-21 20:00:27 1.13MB VC 迷宫 广度优先非递归 windows
1
C语言 地图染色问题 非递归 源代码 下载
2019-12-21 19:52:39 172KB C语言 地图染色 非递归 源代码
1
C语言实现二叉树的中序遍历(非递归),本人亲自写的!
1
1、问题描述: 以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍,设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 2、基本要求: (1)以链栈作为存储结构,编写一个求解迷宫的非递归程序,并将求得的通路以三元组(i,j,d)的形式输出,其中: i,j指示迷宫中的一个坐标,d表示走到下一坐标的方向; (2)编写递归形式的算法,求得迷宫中所有可能的通路; (3)以方阵形式输出迷宫及其通路。(选做) [测试数据] 左上角(1,1)为入口,右下角(9,8)为出口。
2019-12-21 19:34:41 7KB 非递归用栈
1
导入eclipse就可以使用,用两种方式实现了寻找哈密顿路径。
2019-12-21 19:23:13 8KB java 哈密顿 递归 非递归
1