• 晴神机试技巧讲解浓缩版

    本资源仅为晴神所讲解的机试技巧个人整理浓缩版,仅供学习交流,请勿用作商业用途,侵权删。

    5
    403
    360KB
    2019-04-18
    50
  • 计算机专业基础综合考试真题思路分析2019

    内含2009-2018 年的所有考试真题,是PDF,不是照片,仅供学习交流,请勿商业传播,侵权删。

    5
    290
    30.33MB
    2019-01-16
    20
  • 王道计算机网络2019考研指导书(无水印)

    无水印,本资料仅供考研学子交流,请勿作为商业用途,侵权删。

    5
    452
    46.42MB
    2018-09-13
    9
  • 王道计算机组成原理2019考研指导书(无水印)

    无水印,本资料仅供考研学子交流,请勿作为商业用途,侵权删。

    0
    163
    48.48MB
    2018-09-13
    13
  • 王道数据结构2019考研指导书(无水印)

    无水印,本资料仅供考研学子交流,请勿作为商业用途,侵权删。

    0
    142
    55.56MB
    2018-09-13
    9
  • 王道操作系统2019考研指导书(无水印)

    无水印,本资料仅供考研学子交流,请勿作为商业用途,侵权删。

    0
    145
    48.77MB
    2018-09-13
    16
  • LL(1)文法的判别以及非LL(1)文法的转换(完整可运行代码)

    本程序的所用的存储结构都是string类型的,最主要的存储文法的数据结构为自定义结构,里面包括一个产生式的左部,右部以及select集合,至于非终结符的first和follow集合,则是定义了一个string类型的数组进行存储。 本程序的求first,follow,select集合的算法即为书上所介绍的方法,即求first的集合时,只看本产生式,求follow集合时,要进行递归查找一个非终结符的所有后跟字符,求select其实就是对first与follow集合的运算,最终根据所有的select集合,便可以判断此文法是否为LL(1)文法。 对于不是LL(1)文法的产生式,本程序在判断后进行转换,先进行消除左递归,然后提取左公因子,在这两步的每一步结束之后,都要对产生式进行整合,去掉空存储,去掉无法到达的产生式,将select全部置空。 每进行一次非LL(1)到LL(1)的转换之后,都要对其文法性质进行判断,如果是LL(1),则跳出,不是则继续,但是当循环一定次数之后仍不是,程序判定其无法转换,也要跳出。 其中还有对第一个非终结字符的右部替换与否进行选择,原因是,有些通过替换就可以很方便的进行转换,这个要通过人为进行输入。 提取公因子中也有上一段所说的类似的判断机制,目的是为了防止文法的左公因子无法提取完的情况出现。 最终有三种结果,一种是是LL(1)文法,一种是不是LL(1),但是经过转换变成了LL(1),还有一种是经过转换也无法变成LL(1)。 输入文本格式样例: A A->ad A->Bc B->aA B->bB

    5
    2979
    214KB
    2018-09-10
    42
  • DFA的最小化 (完整可运行代码)

    本程序的基本数据结构是string类型的数组,用于储存划分的子集,而子集中的元素的邻接点与权值都在edge结构体数组中存储。 把一个DFA的状态分成一些不相交的子集,使得任何不同的两子集的状态都是可区别的,而同一子集中的任何两个状态都是等价的. 算法假定每个状态射出的弧都是完全的,否则,引入一个新状态,叫死状态,该状态是非终态,将不完全的输入弧都射向该状态,对所有输入,该状态射出的弧还回到自己。 1.构造状态的一初始划分:终态kt 和非终态K- kt两组(group) 2.对∏施用过程PP 构造新划分∏new 3.如∏new =∏,则令 ∏final=∏ 并继续步骤4,否则∏:=∏ new重复2 . 4.为∏final中的每一组选一代表,这些代表构成M’的状态。若k是一代表且f(k,a)=t,令r是t组的代表,则M’中有一转 换f’(k,a)=rM’ 的开始状态是含有S0的那组的代表 M’ 的终态是含有F的那组的代表 5.去掉M’中的死状态. 输入文本格式样例: 0 a 1 1 a 2 2 a 2 2 d 3 1 d 3 3 d 3 3 a 2 # 123 0 ad

    3
    3096
    81KB
    2018-09-10
    50
  • NFA的确定化(NFA->DFA)(完整可运行代码)

    本程序的目的数据结构是一个储存所有子集集合的一个结构体,包含子集中所有的状态,利用邻接表实现。 算法正如书上所说,子集构造算法如下: 假定所构造的子集族为C,即C= (T1, T2,,... TI),其中T1, T2,,... TI为状态K的子集。 (1)开始,令-closure(K0)为C中唯一成员,并且它是未被标记的。 (2)while (C中存在尚未被标记的子集T)do { 标记T; for 每个输入字母a do { U:= -closure(move(T,a)); if U不在C中 then 将U作为未标记的子集加在C中 } } 输入文本格式样例: A B C D E F G H I J K L M N O P Q R S T # A a B C * D E a F G d H M a N O d P Q * M Q * O N * R P * R I * E I * G F * J H * J K * I J * L J * I K * L B * S S * K S * C D * T R * T L * Q

    4
    2652
    112KB
    2018-09-10
    49
  • 正规文法转正规式+正规式NFA(完整可运行代码)

    (1)正规文法转正规式: 本程序的数据结构是string类的字符串存储变量,首先,读入的是3型文法,即正规文法,关于文法的检验这里就不再进行(因为第一个实验里已经实现了),读入的还有一个flag,flag为0即为左线性,为1为右线性,对读入的文法先进行第一次归类,即正规式左部相同的放在一起,本程序使用vector容器实现的对象放置,然后对所有的没有外部依赖的元素进行整合,最后依据没有外部依赖的整合后的表达式对其他的正规文法进行转换,最终得到转换结果。 (2)正规式NFA 本程序有很多数据结构,但最终的目的数据结构是存储转化好的NFA图的单元cell,里面包含起点、终点、边数以及边集合。 先读入正规式,并对正规式进行合法检测,将正规式中填入连接符号“+”,然后将其转化成后缀表达式,根据后缀表达式,对每一个操作符和操作数进行处理,处理的数据结构为cell类型的堆栈,处理完后,将最终栈内唯一的目的cell元素出栈,最后将其用二维数组的形式展现出来。 输入文件样例: a($|((a|d)(a|d)*))

    0
    6013
    180KB
    2018-09-10
    44
  • 笔耕不辍

    累计2年每年原创文章数量>=20篇
  • 学习力

    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持续创作

    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 领英

    绑定领英第三方账户获取
  • GitHub

    绑定GitHub第三方账户获取
  • 创作能手

    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户
  • 专栏达人

    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 1024勋章

    #1024程序员节#活动勋章,当日发布原创博客即可获得
关注 私信
上传资源赚积分or赚钱