⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g.cpp

📁 消除文法左递规算法的实现(此为可执行源代码)
💻 CPP
字号:
#include<string.h>
#include<iostream.h>

typedef struct Snode{
	char* s;
	struct Snode *nexts;
}Snode;

typedef struct Cnode{
	char c;
	struct Cnode *nextc;
	struct Snode *define; 
}Cnode;

class G{
	public:	
		Cnode *vn,*vt,*s,*p;
		
		G()
		{
			vn=0;
			vt=0;
			s=0;
			p=0;
		}

		void insert_into_vn(char newc)
		{
			Cnode *p;
			Cnode *lastvn;
			p=new Cnode;
			p->c=newc;
			p->nextc=0;
			p->define=0;
			if(!vn)	vn=p;
			else
			{
				lastvn=vn;
				while(lastvn->nextc)
					lastvn=lastvn->nextc;
				lastvn->nextc=p;
			}
		}

		void insert_into_s(char leftvn,char* rights)
		{
			Cnode* pc;
			Snode *ps,*lasts;
			ps=new Snode;
			ps->s=rights;
			ps->nexts=0;
			pc=find_char_inq(vn,leftvn);
			if(!pc)
			{
				insert_into_vn(leftvn);
				pc=find_char_inq(vn,leftvn);
			}
			lasts=pc->define;
			if(!lasts)
				pc->define=ps;
			else
			{
				while(lasts->nexts) lasts=lasts->nexts;
				lasts->nexts=ps;
			}
		}
		
		Cnode* find_char_inq(Cnode* q,char c)
		{
			Cnode* p=q;
			if(!p) return 0;
			while(p&&p->c!=c)
				p=p->nextc;
			if(!p) return 0; else return p;
		}		
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -