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

📄 chang.h

📁 数据结构课程设计的题目
💻 H
字号:
#include<stdio.h>
#include<string.h>
#define MaxSize 100
typedef char DataType;
#include"SeqStack.h"

int    Chang(char str[],int n,char str1[])//开辟一个数组存放转变后的式子,这样方便计算结果时调用 
{
    int i,j=0;
    char x;
    SeqStack S;
    StackInitiate(&S);
    StackPush(&S,'#');
	for(i=0;i<n;i++)
	{
	
		/*1*/ if(str[i]=='|')
		{
			StackTop(S,&x);
			while(x!='#'&&x!='(')
			{
				StackPop(&S,&x);
				printf("%c",x);
                str1[j++]=x;
				StackTop(S,&x);
			}
			StackPush(&S,str[i]);continue;
		}
		//-------------非号
	     if(str[i]=='!')
		{
			/*StackTop(S,&x);
			while(x=='!')
			{
				StackPop(&S,&x);
				printf("%c",x);
                str1[j++]=x;
				StackTop(S,&x);
			}*/
			StackPush(&S,str[i]);//当前符号入栈
			continue;                  
			
		}
		
		/*3*/else if(str[i]=='(')//直接进栈,优先级最高
		{
			StackTop(S,&x); 
			StackPush(&S,str[i]); 
			continue;                     
		}
		/*4*/else if(str[i]=='&')
		{	
            StackTop(S,&x);
            while(x=='!'||x=='&')
            {
           	   StackPop(&S,&x);
           	   printf("%c",x);
                str1[j++]=x;
				StackTop(S,&x);
			}
			StackPush(&S,str[i]);//当前符号入栈
			continue;
        }            
                                
		/*5*/else if(str[i]==')')
		{
			//一直将当前栈顶元素出栈,直到遇到'('为止
			StackTop(S,&x);
			while(x!='#'&&x!='(')
			{
				
				StackPop(&S,&x);
				printf("%c",x);str1[j++]=x;
				StackTop(S,&x);             
			}
			if(x=='(') StackPop(&S,&x);//若'('为将其出栈后,出栈结束而')'始终不用入栈
			continue;
		}
		/*6*/else if(str[i]=='#')
		{//将栈顶元素依次出栈,直遇到'#'出栈结束
			StackTop(S,&x);
			while(x!='#') 
			{
				
				StackPop(&S,&x);
				printf("%c",x);str1[j++]=x;
				StackTop(S,&x);             
			} 
			if(x=='#') StackPop(&S,&x);//将栈内的最后一个元素出栈,表达式转换完毕
			continue;
		}
		/*7*/else 
		{
			printf("%c",str[i]);str1[j++]=str[i];
			continue;
		}
    }   
	printf("\n");
	return j;
}   
                                             
                
 

⌨️ 快捷键说明

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