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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? suanshubiaodaishiqiuzhi.txt

?? 算術(shù)表達(dá)式求值 數(shù)據(jù)結(jié)構(gòu)算法 C語言實現(xiàn)
?? TXT
字號:
	#include<stdlib.h>
	#include<stdio.h>
	#define stack_init_size1 40
	#define stack_init_size2 20
	#define stackincrement1 40
	#define stackincrement2 20
	typedef struct{
	    int *base;
	    int *top;
	    int stacksize;
	}s_stack;
	typedef struct{
	    char *base;
	    char *top;
	    int stacksize;
	}f_stack;
	
	static char Weigh[8][9]=
	    {
	        {'>','>','<','<','<','>','>','<','>'},{'>','>','<','<','<','>','>','<','>'},
	        {'>','>','>','>','<','>','>','>','>'},{'>','>','>','>','<','>','>','>','>'},
	        {'<','<','<','<','<','=','>','<','>'},{'>','>','>','>','>','>','>','>','>'},
	        {'<','<','<','<','<','>','=','<','='},{'>','>','>','>','<','>','>','>','>'},
	        //{'<','<','<','<','<','>','=','<','='} 
	    };
	
	int Seriallize(char c)
	{
	    switch(c)
	    {
	    case '+': return 0;
	    case '-': return 1;
	    case '*': return 2;
	    case '/': return 3;
	    case '(': return 4;
	    case ')': return 5;
	    case '#': return 6;
	    case '^': return 7;
		case '\n': return 8;	
	    default:return 9;
	    }
	
	}
	
	void s_push(s_stack *s,int e)
	{
	
	     if(s->top-s->base>=s->stacksize)
	     {
	         s->base=(int *)realloc(s->base,(s->stacksize+stackincrement1)*sizeof(int));
	         if(!s->base) exit(0);
	         s->top=s->base+s->stacksize;
	         s->stacksize+=stackincrement1;
	     }
	    *s->top=e; s->top++;
	    /*printf("the s_stack has the data:%d\n",*(s->top-1));*/
	}
	void  f_push(f_stack *f,char e)
	{
	     if(f->top-f->base>=f->stacksize)
	     {
	         f->base=(char *)realloc(f->base,(f->stacksize+stackincrement2)*sizeof(char));
	         if(!f->base) exit (0);
	         f->top=f->base+f->stacksize;
	         f->stacksize+=stackincrement2;
	     }
	     *f->top=e;f->top++;
	    /* printf("the f_stack has the sign:%c\n",*(f->top-1));*/
	}
	
	int s_gettop(s_stack *s)
	{
	    s->top--;
	    return *s->top;
	}
	
	char f_gettop(f_stack *f)
	{
	    f->top--;
	    return *f->top;
	}
	bool f_ifempty(f_stack *f)
	{
		if (f->base==f->top)
		{
		  return true;
		}
		else
		{
		  return false;
		}
	}
	
	char EstimateCalculator(f_stack *f,char c)
	{
	    int m,n;
	    char w;
	    m=Seriallize(c);
	    w=*(f->top-1);
	    n=Seriallize(w);
	    return Weigh[n][m];
	}
	int Pow(int p,int q)
	{
		if (q==0)
		{
		   return 1;
		}
		else
		{
			return p*Pow(p,q-1);
		}
	}
	int Operate(int p,char r,int q)
	{
	        switch(r)
	    {
	        case '+': return q+p;
	        case '-': return p-q;
	        case '*': return q*p;
	        case '/': return p/q;
	        case '^': return Pow(p,q);
	    }
	}
	bool Calculate(int &Result)
	{
	    int h=0,iResult;
	
	    int iWrong=0;
		int iNumberOut=0;
	    char cNewChar;
	    s_stack istackNumber;
	    f_stack cstackCalculator;
	
	
	    istackNumber.base=(int*)malloc(stack_init_size1*sizeof(int));
	    if(!istackNumber.base) return 0;
	    istackNumber.top=istackNumber.base;
	    istackNumber.stacksize=stack_init_size1;
	
	    cstackCalculator.base=(char*)malloc(stack_init_size2*sizeof(char));
	    if(!cstackCalculator.base) return 0;
	    cstackCalculator.top=cstackCalculator.base;
	    cstackCalculator.stacksize=stack_init_size2;
	    *cstackCalculator.top='#';cstackCalculator.top++;
	
	    cNewChar=getchar();
		//getchar是一個一個字符讀入。
	    //比如12先讀入1,再讀入2。
		
		
		
		while((!(f_ifempty(&cstackCalculator))||(cNewChar!='\n'))&&(iWrong==0))
	    {//只要運算符號棧不空或者最后一次輸入的符號不是回車則運行以下程序. 
		 //換句話說,這段程序結(jié)束的條件是所有的運算符用完,
		 //而且當(dāng)前輸入的有時回車.	
			int t;
		    
	        int p,q;
	
	        char r;
	        if(Seriallize(cNewChar)==9)
			//當(dāng)前讀入的不是運算符,而是數(shù)。
	        {   
				if(h>0)//第h次讀入
				{
	               t=s_gettop(&istackNumber);
				   //取出數(shù)棧里最后一個數(shù)。
	               s_push(&istackNumber,t*10+cNewChar-48);
				   //把取出的數(shù)乘于10加上當(dāng)前讀入字符(減去48)對應(yīng)的數(shù)存回數(shù)棧。
				}
	   else s_push(&istackNumber,cNewChar-48);//第一個字符比如12的1。
	            h++;
				cNewChar=getchar();
	
	        }
	        else
			//當(dāng)前讀入的符號是運算符。
	        switch(EstimateCalculator(&cstackCalculator,cNewChar))
	        {
	          case '<'://當(dāng)前的運算符號的級別高于前一個運算符。
	               f_push(&cstackCalculator,cNewChar);
				   //運算符壓入
				   cNewChar=getchar();
				   h=0;
				   break;
	          case '='://當(dāng)前的運算符號的級別等于前一個運算符。
	               cstackCalculator.top--;
	               cstackCalculator.stacksize--;
				   //前一個運算符退棧。
	               if (cNewChar!='\n')
	               {
	                 cNewChar=getchar();
				   }
	               h=0;
				   break;
	          case '>'://當(dāng)前的運算符號的級別小于前一個運算符。
	               if (cstackCalculator.top-cstackCalculator.base<1)
	               {
	                 iWrong=1;
					 
				     }
				   else
				   {
					   r=f_gettop(&cstackCalculator);
					   //從運算符棧中取出當(dāng)前運算所需要的運算符.
				   }
				  
				   
	              
			      if ((istackNumber.top-istackNumber.base)>1)
				  {//從數(shù)棧里的數(shù)取出當(dāng)前要進(jìn)行運算的二個數(shù)進(jìn)行運算.
						   q=s_gettop(&istackNumber);
						   p=s_gettop(&istackNumber);
						   
						   iResult=Operate(p,r,q);
						   s_push(&istackNumber,iResult);
						   
				  }
				  else
				  {//數(shù)棧里的數(shù)不足兩個.
	
						   iWrong=1;
				  }
				  break;
				  
			}//switch
		}
	
		if(iWrong==1)
		{
			return false;
			Result=0;
	    }
		else
		{
			Result=s_gettop(&istackNumber);
			return true;
		}
		free(cstackCalculator);
		free(istackNumber);
	}
	
	
	
	int main()
	{
	    
		char cIfCalculate='y';
		
		while ((cIfCalculate=='y'))
		{
		   printf("please input the expression and end it with enter!\n");
		   int iResult;
	
		   bool blLegalExpression=Calculate(iResult);
		   if (blLegalExpression)
		   {
		      printf("the answer is %d\n",iResult);
		   }
		   else
		   {
			 printf("You have input the incorrect expression!!!\n");
		   }
		   printf("continue to calculate?press y to continue,and any key to break.");
		   cIfCalculate=getchar();
		   fflush(stdin);
		   //刷新標(biāo)準(zhǔn)輸入流,否則程序?qū)⒔又谀抢镒x入我們不需要的字符.
		}
		return 0;
	}			   
					   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本亚洲高清| 日本成人在线视频网站| 日韩精品久久理论片| 91在线观看成人| 中文字幕一区视频| 99re66热这里只有精品3直播| 欧美一区永久视频免费观看| 成人免费毛片片v| 日本一区二区综合亚洲| 国产高清一区日本| 日韩一区二区三区高清免费看看| 亚洲一区二区精品视频| 色综合婷婷久久| 一区二区三区在线免费播放| 91丨porny丨在线| 成人欧美一区二区三区白人 | 精品视频免费在线| 日韩国产高清影视| 91精品在线免费| 激情综合五月婷婷| 国产精品女同互慰在线看| 色综合久久中文综合久久牛| 亚洲第一搞黄网站| 2023国产一二三区日本精品2022| 国产乱人伦精品一区二区在线观看| 欧美国产激情二区三区| 97精品超碰一区二区三区| 亚洲一卡二卡三卡四卡| 欧美精品在欧美一区二区少妇| 麻豆成人久久精品二区三区小说| 欧美电影一区二区| 九九视频精品免费| 一区二区高清在线| 91麻豆精品国产自产在线观看一区 | 中文欧美字幕免费| 91精选在线观看| 99久免费精品视频在线观看| 日韩国产精品大片| 亚洲美女偷拍久久| 中文字幕精品在线不卡| 欧美一区二区三区的| 91免费版在线| 国产999精品久久久久久绿帽| 日韩综合小视频| 日韩伦理免费电影| 欧美成人video| 91精品一区二区三区久久久久久| 91小视频免费看| 大胆亚洲人体视频| 国产一区二区三区观看| 日本sm残虐另类| 自拍偷拍亚洲欧美日韩| 久久九九99视频| 国产欧美精品一区二区三区四区| 欧美精品一区二区高清在线观看| 8v天堂国产在线一区二区| 91丨九色丨蝌蚪丨老版| 91性感美女视频| 欧美在线免费播放| 欧美精品少妇一区二区三区| 2022国产精品视频| 久久精品亚洲精品国产欧美| 国产欧美精品区一区二区三区 | 中文字幕乱码日本亚洲一区二区 | 国产91丝袜在线播放九色| av亚洲产国偷v产偷v自拍| 欧美男女性生活在线直播观看| 日韩欧美国产综合| 亚洲欧美日韩电影| 激情综合五月天| 色婷婷亚洲综合| 久久久久久久久久久久久久久99 | 国产欧美一区二区精品忘忧草 | 亚洲电影视频在线| 粉嫩高潮美女一区二区三区| 欧美少妇bbb| 国产精品久久久久国产精品日日| 日韩国产欧美一区二区三区| 99久久伊人网影院| 久久精品视频一区二区| 日韩精品久久久久久| 99re8在线精品视频免费播放| 欧美一区二区精品| 亚洲国产精品一区二区www| 成人精品电影在线观看| 精品国产sm最大网站| 日本不卡视频在线| 91.com在线观看| 亚洲gay无套男同| 欧美日本一区二区三区四区 | 亚洲色图色小说| 成人黄色免费短视频| 久久精品欧美日韩| 国产精品99久久久久久似苏梦涵| 亚洲精品在线网站| 国产高清一区日本| 中文字幕的久久| a在线欧美一区| 亚洲综合偷拍欧美一区色| 91同城在线观看| 国产综合久久久久久久久久久久| xnxx国产精品| 不卡在线观看av| 亚洲一区二区视频在线| 91精品久久久久久蜜臀| 激情丁香综合五月| 国产精品久久久久一区| 欧美视频在线一区二区三区 | 国产精品久久久久久久久久久免费看 | 一区二区三区不卡视频 | 91精品久久久久久久91蜜桃| 国产精品一区二区在线观看不卡| 国产精品美女www爽爽爽| 欧美午夜精品一区二区三区| 久久精品久久久精品美女| 国产精品乱码人人做人人爱| 在线观看欧美精品| 国产精品小仙女| 三级成人在线视频| 中文字幕中文字幕一区二区| 欧美一级专区免费大片| 丁香一区二区三区| 男人的j进女人的j一区| 亚洲免费毛片网站| 国产精品水嫩水嫩| 2023国产一二三区日本精品2022| 欧美日韩中文另类| 色综合久久中文字幕| 国产一区二区调教| 免费观看一级特黄欧美大片| 一区二区三区在线视频播放| 欧美国产日产图区| 亚洲精品一区二区精华| 欧美精品 日韩| 欧美日韩日日骚| 欧美三级欧美一级| 在线区一区二视频| 色综合久久天天综合网| av不卡一区二区三区| 丁香桃色午夜亚洲一区二区三区| 久久成人久久爱| 六月婷婷色综合| 国内精品久久久久影院薰衣草| 日本成人中文字幕| 久久精品99久久久| 麻豆成人久久精品二区三区小说| 免费在线观看一区| 国产毛片精品国产一区二区三区| 国产精品中文字幕欧美| 成人高清免费在线播放| 91美女视频网站| 欧美日韩国产另类一区| 91精品国产综合久久久久久漫画| 欧美日韩视频在线第一区 | 亚洲欧美国产三级| 亚洲国产综合91精品麻豆| 日本欧美一区二区| 国产**成人网毛片九色| 久久亚洲私人国产精品va媚药| 欧美激情艳妇裸体舞| 一区二区三区四区激情| 免费观看30秒视频久久| 成人午夜精品一区二区三区| 色8久久精品久久久久久蜜| 欧美一区二区视频在线观看| 久久久午夜精品| 日韩av电影天堂| 成人黄色大片在线观看| 日韩一区二区精品在线观看| 国产日韩欧美精品在线| 免费观看在线综合| 91在线观看高清| 中文字幕精品—区二区四季| 日韩—二三区免费观看av| 91视频观看视频| 国产欧美精品一区| 激情图区综合网| 欧美日本一道本| 欧美日韩成人综合天天影院| 精品嫩草影院久久| 国产91精品入口| 中文字幕日韩一区二区| 欧洲一区二区av| 亚洲大片免费看| 91豆麻精品91久久久久久| 国产精品夫妻自拍| aa级大片欧美| 最新欧美精品一区二区三区| 成人精品鲁一区一区二区| 国产欧美精品一区二区三区四区| 经典一区二区三区| 精品国偷自产国产一区| 狠狠色丁香婷综合久久| 久久久三级国产网站| 成人动漫一区二区在线| 综合精品久久久| 欧美日本一区二区| 麻豆精品精品国产自在97香蕉| 欧美大黄免费观看| 91麻豆自制传媒国产之光|