- 博客(5)
- 收藏
- 关注
原创 编译原理——求文法中每个非终结符的FIRSTVT集合(C++实现)
呢,我们获取产生式右部的非终结符前缀,具体实现在getnotend函数中,比如A->E#E,前缀就是E, A->EE#E,前缀就是EE,然后与栈顶的值比较即可。输入以一行字符串代表一个产生式,我们需要对这个字符串进行处理,把所有的非终结符剥离出来,把所有的终结符剥离出来。我们需要根据A,找到非终结符中A的下标,这才是伪代码中的iA.我们需要根据a,找到终结符中a的下标,这才是伪代码中的ja.(存储终结符)isend={↑,#,(,),*,+,i};首先,函数中的A是产生式左部,a是产生式右部的一部分。
2023-05-26 17:17:03
725
1
原创 图论——欧拉路
有向连通图的判断条件:(1)把一个点上的出度记为-1,入度记为1,这个点上所有的出度和入度之和就是它的度数。一个有向图出现欧拉回路,当且仅当该图所有点的度数为0,如果只有一个度数为1的点,一个度数为-1的点,其他所有点度数为0,那么存在欧拉路径,度数为-1的点是起点,度数为1的点是终点。无向连通图的判断条件:(1)如果图中的点全都是偶点,存在欧拉回路,任意一点都可以作为起点和终点。(2)如果只有两个奇点,则存在欧拉路,一个奇点是起点,一个奇点是终点。欧拉回路:起点和终点相同的欧拉路。...
2022-08-29 19:30:29
1185
原创 图论——拓扑排序模板
拓扑排序求补充关系的个数:给出部分点之间的关系,求使得这些点构成一个完整的拓扑排序,需要补充多少条关系。可以每次统计队头元素的所有邻边,它们之间的关系需要减一。
2022-08-29 19:18:40
187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人