• Floyd算法求任意两点间的最短距离+BFS+DFS

    用邻接矩阵来存储图,Floyed算法求任意两点间的最短路径并输出,广度优先遍历,深度优先遍历

    5
    651
    5KB
    2013-08-08
    47
  • 编译原理第6次上机 三地址代码

    编译技术第6次上机内容 目的:充分理解并掌握中间代码生成的相关方法,用C++程序实现。 要求: 1.以S属性的语法制导定义为基础,将下列产生式附上一定的语义规则。即在原来语法分析的基础上插入相应的语义动作:将输入串翻译成三地址代码序列。 E ® E1 + T E ® T T ® T1 * F T ® F F® (E) F ® digit F ® id 2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。 3.输入:(-b+c*d)+c*d 输出: t1= -b t2= c*d t3=t1+t2 t4= c*d t5=t3+t4 4. 若输入有误,如:a++b**c(d+e) 则应提示:+后面缺少运算对象, *后面缺少运算对象, c后面缺少运算符, 请重新输入! 扩展: 将三地址代码优化为DAG代码 例如: 输入: (-b+c*d)+c*d 输出: t1= -b t2= c*d t3=t1+t2 t5=t3+t2

    4
    509
    8KB
    2013-06-08
    28
  • 编译原理第5次上机 属性计算

    编译技术第5次上机内容 目的:充分理解语义分析的方法及相关语义计算的执行时机。 要求: 1.以S属性的语法制导定义为基础,将下表的语义规则嵌套在语法分析的过程中,即实现语法制导的翻译过程。 产 生 式 语 义 规 则 L E n print (E.val) E E1 + T E.val := E1 .val + T.val E T E.val := T.val T T1 * F T.val := T1.val * F.val T F T.val := F.val F (E) F.val := E.val F digit F.val := digit.lexval 2.以语法分析部分的两次上机结果为基础,添加语义分析部分。即以LL(1)文法或者LR文法为基础。当产生式完全推导出来或者规约时执行对应的语义动作。 3.输入: 5+3+8*2 输出:24 4. 若输入有误,如:3++2 则应提示:重新输入! 5. 由于输入串是具体的数值,因此应调用相应的词法分析的功能。 扩展: 对浮点数也能完成上述的操作。 增加减法和除法对应的产生式,并能计算其语义结果。 在ftp中第五次上机的文件夹中有两个压缩包,用递归下降法实现的程序在压缩包“recursion_calculator.rar”中,用非递归的预测分析方法实现的程序在压缩包“predict_calculator.rar”中。可以任选其一作为基础进行改进。将其改造成有减法和除法的程序,并写出对应的产生式。

    5
    325
    5KB
    2013-05-29
    10
  • 第四次上机作业 语法分析2

    目的:熟练掌握自下而上的语法分析方法,并能用程序实现。 要求: 1. 使用如下文法:    E E+T | T T T*F | F F (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P69 图3.12)输出(P70 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进    按 F->id归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。 例如: 从状态0开始的记号流为:bm 将b移进之后,栈里的情况应该为: 0 b 2 此时查表发现 action[2,m]=error 输出打印:error 把A和状态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。

    5
    682
    5KB
    2013-05-13
    16
  • 比较两篇纯英文文本的相似度

    从文件中读出文本 比较相似度 以链表的形式存储 统计相同单词数 相同单词出现的次数 相同单词后面跟着的4个词中的相同单词个数……加权算出相似度

    4
    1324
    259KB
    2013-04-14
    47
  • FCFS 最短最优先调度算法

    1)编程实现本实验的程序,要求: 建立进程的进程控制块,进程控制块至少包括: 进程名称; 进程需要执行时间; 进入就绪队列时间; 进程执行开始时间 进程执行结束时间 编程实现调度算法。 进程及相关信息的输入。这些信息可以直接从键盘上输入,也可以从文件读取。 时间片与时间流逝的模拟。本实验需要对算法的执行计时,程序应该提供计算时间的方法。一种最简单的方法是使用键盘,比如每敲一次空格代表一个时间片的流逝。另一种方法是使用系统时钟。 一组进程序列执行完毕,打印出结果信息。程序需要计算出每个进程的开始执行时间、结束时间、周转时间和带权周转时间,并为整个进程序列计算平均周转时间和平均带权周转时间。程序将计算结果按一定的格式显示在计算机屏幕上或输出到文件中。打印出进程调度顺序图。 实现数据在磁盘文件上的存取功能。

    5
    674
    2KB
    2013-04-11
    11
  • 排序(数据结构最后一次作业)

    大连理工大学软件学院11级 数据结构最后一次上机作业 包括3中插入排序 2中交换排序 简单选择排序和 归并排序 课后6、7题 将一组数中所有负数元素放在非负数元素之前;同时找出一组数据中的最大值和最小值

    0
    371
    5KB
    2012-12-23
    9
  • 破圈法构造最小生成树

    用邻接矩阵存储图的信息 图的信息由用户输入 算法思想:1、找到度为1的顶点 将这个点删除 并把它的邻接点度数减一 反复执行此操作直到没有度为1 的顶点2、剩下的点已经在环中,找到最大的边 ,删除 3、反复执行1 2操作 直到最后找不到环路

    5
    431
    5KB
    2012-12-21
    10
  • 从有向图中找出回路

    由用户输入图的信息 包括顶点和边的信息 从有向图中找出一条回路 并输出

    4
    670
    5KB
    2012-12-15
    38
  • Floyd算法求任意两点间的最短路径

    用C++ 语言编写 用Floyd算法求有向图中任意两点间的最短路径 由用户输入顶点和有向边的信息

    5
    1235
    5KB
    2012-12-13
    50
上传资源赚积分or赚钱