首页 > 其他分享 >洛谷p1449后缀表达式题解

洛谷p1449后缀表达式题解

时间:2024-07-08 11:30:31浏览次数:14  
标签:洛谷 sqStack int 题解 top long p1449 base ElemType

#include<stdio.h>
#include<stdlib.h>

#define MAXSIZE 100

typedef long ElemType;
typedef struct
{
	ElemType *base;
	ElemType *top;
	int StackSize;
}sqStack;

void InitStack(sqStack *s)
{
	s->base=(ElemType *)malloc
	(MAXSIZE*sizeof(ElemType));
	if(!s->base)
	{
		exit(0);
	}
	s->top=s->base;
	s->StackSize=MAXSIZE;
}

void Push(sqStack *s,ElemType e)
{
	if(s->top-s->base>=s->StackSize)
	{
		exit(0);
	}
	*(s->top)=e;
	s->top++;
}

void Pop(sqStack *s,ElemType *e)
{
	if(s->top==s->base)
	{
		exit(0);
	}
	*e=*--(s->top);
}

int StackLen(sqStack s)
{
	return s.top-s.base;
}


int main()
{
	sqStack s;
	long sum=0;
	long d,e;
	char c;
	InitStack(&s);
	scanf("%c",&c);
	while(c!='@')
	{
		while(c>='0'&&c<='9')
		{
			sum=sum*10+(c-'0');
			scanf("%c",&c);
		}
		if(c!='-'&&c!='+'&&c!='*'&&c!='/')
		{
			Push(&s,sum);
		}
		
		
		switch(c)
		{
			case '+':
				Pop(&s,&d);
				Pop(&s,&e);
				Push(&s,e+d);
				break;
			case '-':
				Pop(&s,&d);
				Pop(&s,&e);
				Push(&s,e-d);
				break;
			case '*':
				Pop(&s,&d);
				Pop(&s,&e);
				Push(&s,e*d);
				break;
			case '/':
				Pop(&s,&d);
				Pop(&s,&e);
				Push(&s,e/d);
				break;
		}
		sum=0;
		scanf("%c",&c);
	}
	Pop(&s,&e);
	printf("%ld\n",e);
	return 0;
}

标签:洛谷,sqStack,int,题解,top,long,p1449,base,ElemType
From: https://blog.csdn.net/2301_79969370/article/details/140245849

相关文章

  • 24暑期第三次训练C组题解
    目录A津津的储蓄计划auto遍历:B校门外的树memset()C杨辉三角DSpecialCharacters位运算&三目运算符EStrangeSplittingFStickogonGCardExchange构造结构体和重载运算符HLeastProductI选数JPeter的烟A津津的储蓄计划模拟题,按题意模拟即可.voidfunc(){ intjin......
  • WPF ComboBox数据绑定:初始化动态加载ItemsSource后首次赋值Text不显示问题解决
    原来:<ComboBoxText="{BindingItem}"ItemsSource="{BindingItemLists}"></ComboBox>privatevoidParas_Init(){ItemLists=newObservableCollection<string>();ItemLists.Add("111......
  • [BZOJ4350] 括号序列再战猪猪侠 题解
    我们设\(dp_{i,j}\)表示第\(i\)到第\(j\)个括号合并为序列且最外层不是括号\(i\)的可能性,\(f_{i,j}\)表示最外层是括号\(i\)的可能性。则有:\[\begin{cases}dp_{i,j}=\sumf_{i,k}(dp_{k+1,j}+f_{k+1,j})\\f_{i,j}=dp_{i+1,j}+f_{i+1,j}\end{cases}\]当然,并不是所......
  • [ABC210E] Ring MST 题解
    链接洛谷相应链接atcoder相应链接题意给n(1≤n≤......
  • CodeForces CF1986C Update Queries题解
    来吧,兄弟们,再来篇题解,其实也不是题解,是我自己的思路/心得/体会UpdateQueries题面翻译题目翻译一共$t$组数据,每组数据给定长度为$n$的字符串$s$,长度为$m$的$ind$数组和字符串$c$。你可以任意安排$ind$数组和字符串$c$的顺序,并按照此顺序对字符串$s$进行$m$......
  • **CodeForces CF1928B Equalize题解**
    ok兄弟们,今天本蒟蒻来做一篇小小的题解Equalize题面翻译有一个给定的长度为$n$的数列$a$,现在加上一个排列$b$,即$c_i=a_i+b_i$。现在求对于所有可能的$b$,$c$中出现最多的数的出现次数的最大值。translateby@UniGravity.题目描述Vasyahastwohobbies—addingpe......
  • 【DFS】深度优先搜索 洛谷选数例题讲解
    DFS深搜选数问题看一看题......
  • qoj8225 最小值之和 题解
    题目链接点击打开链接题目解法很牛的题啊从\(f\)序列的最小值切入,考虑把\(f_i:=f_i-f_{min}\),会对\(f'\)造成什么影响?发现会使\(f'\)中的每个数都减去\((n-1)f_{min}\),且会把原问题分成\([1,min]\)和\([min+1,r]\)这两个完全相同的子问题于是考虑区间\(dp\),令......
  • 洛谷P5726 【深基4.习9】打分——C语言
    本题思路:1.先在for循环中分别求出最大值(max),最小值(min),以及它们的和(s);2.最后将它们的和减去最大值,最小值,然后就可以求平均值了,注意是除以n-2#include<stdio.h>intmain(){  intn;  scanf("%d\n",&n);  ints=0,max=-1000,min=300000;//max要小些,min要的......
  • 电脑开机检测不到硬盘怎么办 电脑检测不到硬盘问题解决
    电脑开机检测不到硬盘,无法进入系统或者显示“RebootandSelectproperBootdevice”等错误信息。这种情况可能会导致我们的数据丢失或者无法使用电脑。一、电脑检测不到硬盘的可能原因电脑检测不到硬盘的原因主要有以下几种:1、硬盘连接线松动或损坏:硬盘是通过SATA线或M.2插......