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

📄 mowang.c

📁 魔王语言的实现 里面有详细的报告与源程序实现魔王语言的翻译 是栈与队列的运用与实现
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#define MAXQUEUE 200
int queue[MAXQUEUE];
int front=-1;
int rear=-1;

int EnQueue(char value)           /*进队*/
{
        if(rear>=MAXQUEUE) return -1;            /*队满*/
        queue[++rear]=value;
}


char DeQueue()                     /*出队*/
{
        return queue[++front];
}


main()
{
  int i=0;
  char e,g;
  char reverse[50];
  char str[100], *get_str=str;
 printf("\n\n\n\t*************魔王语言************************\n");
 printf("\t*                                            *\n");
 printf("\t*                      * \n");
 printf("\t*                                            *\n");
 printf("\t********************************************\n");
 printf("\t  请输入要翻译的字母,以!号结束:\n\t\t");
  gets(str);
  while(*get_str!='!')  EnQueue(*get_str++);  /*初始进队*/
 
 printf("\n\n\t***************************************");
 printf("\n\t\t你输入的魔王语言是:\n\t\t");
 
  while(front!=rear)                       /*判断队列是否为空*/
   {
    g=DeQueue();
    if(g=='(')
     {
      i=0;
      e=DeQueue();                 /*将括号内的第一个元素赋值给e */
      while((g=DeQueue())!=')')    /*对括号内的元素进行逆置并存入数组*/
       {
        reverse[i++]=g;
        }
      i--;
      for(;i>=0;i--)                  /*打印括号内元素*/
       {
        if(e=='A') printf("sae");
        else if(e==')') continue;
        else if(e=='B') printf("tsaedsae");
        else printf("%c",e);
        if(reverse[i]=='A') printf("sae");
        else if(reverse[i]=='B') printf("tsaedsae");
        else printf("%c",reverse[i]);

        }
      }
    if(g=='A')printf("sae");  /*当元素为A,B的情况*/
    else if(g==')') continue;
    else if(g=='B') printf("tsaedsae");
    else printf("%c",g);
  
   }
 printf("\n\t***************************************");
 getch();

}

⌨️ 快捷键说明

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