亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 魔王語言gjnl.cpp

?? 2. 進入程序后
?? CPP
字號:
#include<stdlib.h>
#include<malloc.h>
#include<stdio.h>
#include<ctype.h>

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0

#define OVERFLOW -1

typedef char status;
typedef char ElemType;
typedef char SElemType;

#define STACK_INIT_SIZE 21//定義棧的初始長度
#define STACKINCREMENT 10  //定義棧每次追加分配的長度
//實現棧的數據類型

typedef struct{
    SElemType *base;
    SElemType *top;
    int stacksize;
    }Stack;
//-----------------------------------------------------

typedef struct QNode
{
    ElemType data;
    struct QNode *next;
}QNode,*QueuePtr;

typedef struct
{
    QueuePtr front;//隊頭指針
    QueuePtr rear;//隊尾指針
}LinkQueue;
//-------------------------------------------------


status InitQueue(LinkQueue &Q)
{
    //構造一個空隊列Q
    Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
    if(!Q.front)exit(OVERFLOW);
    Q.front->next=NULL;
    return OK;
}
//-------------------------------------------------
status DestroyQueue(LinkQueue &Q)
{
    //銷毀隊列Q
    while(Q.front)
    {
        Q.rear=Q.front->next;
        free(Q.front);
        Q.front=Q.rear;
    }
    return OK;
}
//-------------------------------------------------
status EnQueue(LinkQueue &Q,ElemType &e)
{
    //插入元素e為Q的新的隊尾元素
    QueuePtr p;
    p=(QueuePtr)malloc(sizeof(QNode));
    if(!p) exit(OVERFLOW);
    p->data=e;
    p->next=NULL;
    Q.rear->next=p;
    Q.rear=p;
    return OK;
}
//-------------------------------------------------
status DeQueue(LinkQueue &Q,ElemType &e)
{
    //若隊列不空,則刪除Q的隊頭元素,用e返回其值,并返回OK;
    //否則返回ERROR
    QueuePtr p;
    if(Q.front==Q.rear)return ERROR;
    p=Q.front->next;
    e=p->data;
    Q.front->next=p->next;
    if(Q.rear==p) Q.rear=Q.front;
    free(p);
    return OK;
}
//-------------------------------------------------
status QueueEmpty(LinkQueue Q)
{
    //若隊列Q為空隊列,則返回TRUE,否則返回FALSE
    if(Q.front==Q.rear)return TRUE;
    return FALSE;
}
//-------------------------------------------------

//棧的各項操作的實現
status InitStack(Stack &s)
{
    //初始化棧
    s.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(ElemType));
    if (!s.base) return OVERFLOW;
    s.top=s.base;
    s.stacksize=STACK_INIT_SIZE;
    return OK;
}
//-----------------------------------------------------
status StackEmpty(Stack &s){
    //判斷棧空與否,空時返回TRUE,否則返回ERROR.
    //當棧不存在時返回出錯信息
    if (!s.base) return ERROR;
    if (s.top==s.base) return TRUE;
    return FALSE;
    }
//-----------------------------------------------------
status GetTop(Stack s,SElemType &e)
{
    //當棧存在且不空時返回棧頂元素
    //當棧不存在或棧空時返回出錯信息
    if (s.base==s.top) return ERROR;
        e=*(s.top-1);
    return OK;
}
//-----------------------------------------------------
status Push(Stack &s,SElemType e)
{
    //插入元素e為新的棧頂元素
    if(s.top-s.base>=s.stacksize)//棧滿,追加存儲空間
    {
        s.base=(ElemType *)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(ElemType));
        if(!s.base)exit(OVERFLOW);//存儲分配失敗
        s.top=s.base+s.stacksize;
        s.stacksize+=STACKINCREMENT;
    }
    *s.top++=e;
    return OK;
}
//-----------------------------------------------------
status Pop(Stack &s,SElemType &e){
    //若棧不空,則刪除s的棧頂元素,用e返回其值,并返回OK;
    //否則返回ERROR.
    if(s.top==s.base)return ERROR;
    e=* (--s.top);
    return OK;
    }
//-----------------------------------------------------
status DestroyStack(Stack &s)
{
    //銷毀棧s,s不再存在
    free(s.base);
    s.top=s.base;
    s.stacksize=0;
    return OK;

}

int Translate(char expression[26][6],ElemType Fiend_lang[21])
{
    int i;
    ElemType e;
    ElemType Q_head;
    Stack S1;
//----------------------------------------------------
    InitStack(S1);
    //魔王語言進棧(從右到左)
    for(i=0;Fiend_lang[i]!='\0';i++);
    while(i>0)         //i不可等于0
    {
        i--;
        Push(S1,Fiend_lang[i]);
    }
    /*出棧并處理棧頂元素*/
    while(Pop(S1,e))//魔王語言只能是大寫,魔王詞匯是小寫
    {   
        if(e>='A'&&e<='Z')
    	{
            //expression[e-'A']中的數組從右到左入棧
            for(i=0;(*(expression[e-'A']+i))!='\0';i++);//探測數組expression[e-'A'][i]既第二維中有多少元素
														//expression[e-'A']是計算Fiend_lang[i]所對應的詞匯首地址
            for(i--;i>=0;Push(S1,*(expression[e-'A']+i)),i--);//將第二維元素從右到左進棧,保證輸入時的序列是原來序列的從左到右			
        }      //?? 
        else if(e=='(')
            {   
                LinkQueue Q;
                InitQueue(Q);
                Pop(S1,e);                  
                while(e!=')')
        		{
                    EnQueue(Q,e); 
                	Pop(S1,e);
        		}
                DeQueue(Q,e);
                Q_head=e;
                Push(S1,e);
                while(!QueueEmpty(Q))
        		{
                    DeQueue(Q,e);
                    Push(S1,e);
                    Push(S1,Q_head);//魔王語言規則,每次都需將Q_head再進棧
        		}
             //   Push(S1,Q_head);
                DestroyQueue(Q);
            }
        else//若是小寫字母則輸出,所以程序只需要一個棧即可
            printf("%c",e);
    }
    printf("\n");
    /*處理完畢*/
    return 0;	
}
//---------------------------------------------------------------------
int New_Exp( char expression[26][6])//詞匯儲存在數組中,每個詞匯不超過5個字母
{
    int i,j;  
    printf("Please input the expressions.\n");
    for(i=0;i<26;i++)
    {
		printf("%d",i+1); 
		printf(":");
        for(j=0;j<6;j++)
		{
			expression[i][j]=getchar();
			if(isspace(expression[i][j]))
				{expression[i][j]='\0';j=0;break;}
		}
    }
    return OK;
}
//---------------------------------------------------------------------

void main()
{
    char e;

	int i=0;
    ElemType expression[26][6]={"sae","tAdA","sce","sde"};  //默認的魔王詞匯(只有A,B,C,D)
                                                            //每個詞匯最多只能有5個字符	
    ElemType Fiend_lang[21]; //魔王的一句話最多只能有20個字符(可改)
    //詢問是否要創建新的魔王詞匯
    printf("\n\n\n你想創建一個新的魔王表達法則嗎?(y/N):");
    e=getchar();getchar();
    if(e=='y')
	{New_Exp(expression);}
    printf("\t********************************************\n");
    printf("\n\n\n\n");
    printf("\t  請輸入魔王語言:\n");
    printf("\t  :");
	for(i=0;i<21;i++)
	{
		Fiend_lang[i]=getchar();
		if(isspace(Fiend_lang[i]))//=='\r'||Fiend_lang[i]=='\n'
		{Fiend_lang[i]='\0';break;}
	}
    printf("\t  解釋后為 :");
    Translate(expression,Fiend_lang);
    printf("\n\n\n\n\n");
    printf("\t*****************************************************\n");
    printf("\t\t 計算機科學與技術9班 郭劍楠 3106006799\n");
    printf("\t*****************************************************\n");
    getchar();
    getchar();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产98色在线|日韩| 亚洲18色成人| 日韩午夜av一区| 欧美精品丝袜中出| 欧美亚洲一区三区| 欧美性猛交一区二区三区精品| 成人免费看视频| 成人免费高清在线观看| av在线一区二区三区| 成年人网站91| 色婷婷综合久久久久中文| 99精品久久久久久| 色婷婷av一区二区三区软件| 欧美亚洲国产一区二区三区 | 精品久久久久久最新网址| 777xxx欧美| 欧美xxxxx牲另类人与| 日韩精品最新网址| 久久人人爽人人爽| 国产精品福利在线播放| 亚洲综合激情小说| 日韩高清不卡在线| 国产精品91一区二区| 丁香天五香天堂综合| 99国产精品久久久久久久久久 | 麻豆91精品91久久久的内涵| 久久av老司机精品网站导航| 国产99久久久国产精品免费看 | 亚洲精品第一国产综合野| 一区二区三区在线免费视频| 午夜精品久久久久| 国产毛片精品视频| 中文字幕一区二区在线播放| 国产精品综合网| 成人激情小说乱人伦| 91视频免费看| 欧美在线高清视频| 精品国产青草久久久久福利| 国产精品免费看片| 婷婷六月综合亚洲| 成人av午夜影院| 91精品国产免费久久综合| 中文av字幕一区| 日日骚欧美日韩| 成人黄色一级视频| 在线视频欧美精品| 久久这里只有精品6| 亚洲另类中文字| 国产一区二区影院| 欧美三级电影网站| 日本福利一区二区| 久久综合狠狠综合久久综合88 | 欧美一区二区三区视频在线观看| 日本韩国一区二区三区| 欧美一区二区在线不卡| 国产欧美一区二区三区网站| 日韩高清在线一区| 欧美网站一区二区| 1024成人网| 国产成人亚洲精品青草天美| 日韩一区二区三区电影在线观看 | 亚洲国产精品视频| www.日本不卡| ww久久中文字幕| 久久精品二区亚洲w码| 欧美日韩在线免费视频| 亚洲欧美日韩成人高清在线一区| 国产一区二区导航在线播放| 欧美一区二区三区性视频| 亚洲精品第1页| 色婷婷国产精品久久包臀| 亚洲日本在线天堂| 成人av动漫网站| 日本一区二区成人| 国产 欧美在线| 国产日韩综合av| 懂色av噜噜一区二区三区av| 国产人成一区二区三区影院| 国产一区不卡视频| 久久久99精品免费观看不卡| 亚洲一区在线看| 国产精品情趣视频| 国产精品一区2区| 欧美岛国在线观看| 韩国精品主播一区二区在线观看 | 日韩欧美激情在线| 日韩不卡一二三区| 在线成人高清不卡| 蜜桃一区二区三区四区| 欧美tickling挠脚心丨vk| 国产在线精品不卡| 中文文精品字幕一区二区| 成人av免费在线观看| 一区二区三区丝袜| 欧美日韩国产综合一区二区三区 | 丁香六月综合激情| 亚洲大片精品永久免费| 成人综合在线网站| 精品少妇一区二区三区 | 精品国内二区三区| 久久精品国产亚洲a| 亚洲成av人片| 91麻豆精品国产自产在线观看一区| 石原莉奈一区二区三区在线观看| 欧美成人欧美edvon| 国产黄色91视频| 亚洲日穴在线视频| 欧美一区二区三区免费观看视频| 国产一区二区三区免费看| 亚洲欧洲性图库| 91精品国产aⅴ一区二区| 国产专区欧美精品| 一区二区三区久久久| 日韩免费看的电影| av在线不卡免费看| 麻豆极品一区二区三区| 亚洲天堂中文字幕| 日韩精品一区二区三区在线| 99精品视频一区| 青青草视频一区| 国产精品国产三级国产aⅴ中文| 欧美日韩黄色一区二区| 成人免费高清视频在线观看| 爽好多水快深点欧美视频| 欧美激情一区三区| 欧美一区二区三区四区久久 | 亚洲男人的天堂在线观看| 日韩欧美亚洲国产另类| 在线观看免费成人| 国产成人夜色高潮福利影视| 三级影片在线观看欧美日韩一区二区| 久久久综合精品| 欧美男女性生活在线直播观看| 成人午夜视频免费看| 久久99精品久久只有精品| 一区二区国产视频| 国产精品国产三级国产aⅴ原创 | 亚洲欧美另类图片小说| 久久中文娱乐网| 日韩一级片在线观看| 精品视频一区二区三区免费| 波多野结衣的一区二区三区| 国产老肥熟一区二区三区| 轻轻草成人在线| 日韩av中文字幕一区二区| 亚洲图片欧美综合| 亚洲精品日韩一| 亚洲桃色在线一区| 1区2区3区精品视频| 国产日产欧美一区二区视频| 亚洲精品在线观看网站| 日韩精品中文字幕一区二区三区| 欧美日韩一区二区在线观看 | 日韩欧美一区二区三区在线| 欧美片网站yy| 欧美日韩卡一卡二| 欧美吻胸吃奶大尺度电影 | 欧美喷潮久久久xxxxx| 欧美天天综合网| 欧美日韩亚洲综合| 欧美日韩dvd在线观看| 欧美日韩国产精品成人| 欧美精品日韩一区| 日韩精品在线看片z| 久久精品综合网| 国产精品日韩成人| 日韩理论电影院| 亚洲韩国一区二区三区| 天天操天天色综合| 免费看欧美女人艹b| 狠狠色综合播放一区二区| 国产精品一区2区| 99re8在线精品视频免费播放| 99久久伊人精品| 色哟哟欧美精品| 欧美一卡2卡三卡4卡5免费| 日韩你懂的在线播放| 国产午夜精品美女毛片视频| 中文字幕免费在线观看视频一区| 亚洲天堂久久久久久久| 日韩中文字幕91| 国产一区二区三区日韩| 99久久99精品久久久久久| 欧美日韩卡一卡二| 久久精品一级爱片| 亚洲乱码国产乱码精品精可以看 | 久久精品国产亚洲一区二区三区| 久久99九九99精品| 99久久精品国产网站| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91精品国产欧美一区二区| 国产欧美一区二区三区网站| 亚洲国产精品视频| 国产成人精品免费视频网站| 91色九色蝌蚪| 精品国产区一区| 亚洲国产成人av| 国内外成人在线| 欧美四级电影网| 国产精品国产成人国产三级|