- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 编译原理对文法求项目集族的实现
对给定文法,采用JAVA语言实现求其项目集族。算法设计: * 1.遍历项目集,首先取出第i个项目集 * 2.遍历第i个项目集,取出所有点点后的字符加入缓存中 * 3.创建新的项目集 * 4.循环取出缓存中的字符(表示可读入状态), * 如若当前状态集中有当前取出的缓存字符,则创建一个新的项目(点点后移),并在新的项目集中加入此项目(创建以此项目) * 5.如果items中无此项目,则加入 * @param G代码实现如下:private void createFamily(Gramma
2021-12-05 00:09:34 601 1
原创 编译原理对于求文法Follow集合的实现
实现的算法设计/*** 首先:如果要找L的Follow,要从式子的右边找到L,然后来找L的Follow。 * 其次:将‘#’加入到 开始符 的 Follow中 ① * * 接着:如果L的右边是终结符,那么这个终结符加入L的Follow ② * * 如果L的右边是非终结符,那么把这个非终结符的First集合除去"~"(空)后剩下的元素加到L的Follow中 ③ * * 特别的,如果L处在末尾,那么,将 '->' 符号左边的Follow加入L的Follow * 对
2021-12-04 16:35:42 462
原创 编译原理关于对求文法First集的实现
编译原理关于对求文法First集的实现 思路: * 若X->a..,则将终结符a加入FIRST(X)中;(注意非终结符的情况) * * 若X->e ,则将终结符e加入FIRST(X)中(e表示空集); * * 若 X->BC..D,则将First(B)所有元素(除了空集)加入First(A),然后检测First(B) * 若First(B)中不存在空集, 即e,则停止, * 若存在则向B的后面查看,将First(C)中所有元素(除了空集)加入First(A), * 然后再
2021-12-02 22:41:36 583 1
原创 JAVA实现冒泡排序
JAVA实现冒泡排序(以从小到大为例)主体思想:1.将数组第一个元素开始逐个与其后面的元素比较,如果小于其后的元素,则与其交换位置,继续比较,直至与最后一个元素比较完;2.将数组第二个元素开始与其后的元素逐个比较,重复1操作,直至最后一个元素3.比较完成举个栗子:比如数组a[5]={5,3,2,9,4};现开始第一次循环(1) a[0]=5>a[1]=3,不交换;(2) a[0]>a[2],不交换(3) a[0]<a[3],交换,此时a[0]=9,a[3]=5(4) a[
2021-04-05 20:19:31 96 2
原创 JAVA实验打印空心菱形与杨辉三角
JAVA实验嵌套for循环打印空心菱形与杨辉三角一、空心菱形想到菱形特殊性质,可以采用对称性,即分别打印上半部分三角形与下半部分三角形1.嵌套for循环2.判断打印“*”的条件,由对称性很容易判断JAVA实现代码如下public class test_4 { public static void PrintfLingXing() { System.out.println("请输入菱形的高度:(为奇数)"); //由对称性想到,在一个正方形内部将镂空出菱形,因此高度
2021-04-01 22:30:52 258 2
原创 两个链表的合并(链表的并集)-C语言实现
两个链表的并集有链表A与链表B,求他们的并集并生成链表C1.链表的数据结构:typedef int ElemType;typedef struct Node{ ElemType data; struct Node * next;}LNode,* LinkList;2.链表A与链表B的并集//A表与B表元素的并集void unionAB(LinkList A,LinkList B,LinkList &C){ C=(LinkList)malloc(sizeof(LNode))
2021-03-13 22:39:05 2863 1
原创 JAVA不借助第三者实现两个变量值的互换(异或运算符实现)
JAVA不借助第三者实现两个变量值的互换利用异或运算符实现两个数的互换public class Tets {//借助1异或运算符实现两个数的互换 public static void main(String[] ARGS) { Scanner in=new Scanner(System.in);//创建一个Scanner对象 int n1=in.nextInt(); int n2=in.nextInt(); System.o
2021-03-11 21:03:43 311
原创 Java中输入输出一个char型字符
Java中输入输出一个char型字符charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法。charAt()方法返回指定索引位置的char值。索引范围为0~length()-1,如: str.charAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。在Java中输入单个char型字符,可以调研String类中的chatAt(0)方法Scanner in=new Scanner(System.in);//
2021-03-11 20:33:00 2431
原创 Java输入
JAVA输入方法的比较Java中想要通过控制台输入,需要构造一个Scanner对象并与读取’"标准输入流"System.in相关联1.next()方法:读入下一个输入字符,以空格为分隔符 Scanner in=new Scanner(System.in); String n1=in.next();//读入输入2.nextLine()方法:读入一行,在输入行中可能含有空格Scanner in=new Scanner(System.in);String n1=in.nextLine();//
2021-03-11 20:22:22 76
原创 运算符重载时遇到的问题:没有找到可接受类型的左运算符
运算符重载时遇到的问题:没有找到可接受类型的左运算符*在学习运算符重载时,在书写下列代码时,遇到问题:没有找到接受类型的左操作数运算符(或没有可接受的转换)VS2019报错如下#include<iostream>#include<string>#include<math.h>using namespace std;class T {public: T(int n, int n2) :m(n), n(n2) {}; friend T operator-
2020-12-12 10:04:06 1119
原创 顺序表的交集、并集
求两顺序表的交集、并集操作(顺序表存储结构如下)#define INIT_LIST_SIZE 20 //线性表大小#define LISTCREAMENT 10 //若原来空间不够用,增加的长度#pragma warning(disable:4996)//加上这个后VS2019可以用scanf与printf等typedef int ElemType;typedef struct { //定义顺序表存储结构 ElemType* elem; //储存数据元素,它的存储
2020-07-13 23:13:59 3363 4
原创 线性表的相关理解以及操作(顺序表、链表)
线性表的相关理解以及操作欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式
2020-07-13 22:08:36 219
原创 数据结构:栈的应用之表达式求值(C)
#数据结构:栈的应用之表达式求值(C)`#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define Stacksize_S 30#define Increase_Stack 20typedef int Status;typedef int SElemType;typedef st...
2020-03-29 17:51:31 914
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人