
作者简介:大家好我是小唐同学(๑><๑),为梦想而奋斗的小唐,让我们一起加油!!!
个人主页:小唐同学(๑><๑)的博客主页
系列专栏:数据结构
博友们如果也是新手入门数据结构我希望大家可以多加练习 数据结构题库在牛客网就有已经给大家附上链接,可以直接点击跳转:刷题点这里
牛客网支持ACM模式哦,刷算法题也很推荐哦!!!
下面上文章------》
目录

我们平常习惯所用为中缀表达式,举个例子:
中缀表达式:(a+b+c*d)/e
后缀表达式:abcd*++e/
遇到数值 直接入栈,遇到符号则出栈两个元素 扫描到'\0'结束(或者算出字符数组的长度限制循环) 最后返回栈低元素便是表达式的结果。
- # include
- # include
- # define maxsize 100
- int caozuo(int a,char op,int b)
- {
- if(op=='*')
- return a*b;
- if(op=='+')
- return a+b;
- if(op=='-')
- return a-b;
- if(op=='/')
- {
- if(b==0)
- {
- printf("异常");
- return 0;//异常
- }
- else
- return a/b;
- }
- }
- int houzhui(char a[])
- {
- int st[maxsize];
- int k,b,c,i;
- char q;
- int tope=-1;
- int n=strlen(a);
- for(i=0;a[i]!='\0';i++)
- {
- if(a[i]>='0'&&a[i]<='9')
- {
- // tope;
- st[++tope]=a[i]-'0';
- }
- else
- {
- k=st[tope--];
- b=st[tope--];
- //出栈两个
-
- q=a[i];
-
- c=caozuo(b,q,k);
- ++tope;
- st[tope]=c;
- //printf("%d",);
- }
-
- }
- return c;
- }
- int main()
- {
- char a[]="1221/++2/";
- int p=houzhui(a);
- printf("%d",p);
- return 0;
- }
有N个个位正整数存放在int型数组A[0,…,N-1]中,N为已定义的常量且N≤9,数组A[]的长度为N,另给一个int型变量i,要求只用上述变量(A[0]~A[N-1]与i,这N+1个整型变量)写一个算法,找出这N个整数中的最小者,并且要求不能破坏数组A[]中的数据。
这道题之所以写出来是因为我觉得这道题特别有意思。
个位正整数 (说明十位是空额,我们可以利用数十位来限制循环)
只用上述变量(A[0]~A[N-1]与i,这N+1个整型变量
- # include
- int main()
- {
- int a[5];
- for(int i=0;i<5;i++)
- {
- scanf("%d",&a[i]);
- }
- int i=a[0];
- while(i/10<5)
- {
- if(i%10>a[i/10])
- {
- i=i-i%10;
- i=i+a[i/10];
- }
- i=i+10;
- }
- i=i%10;
- printf("%d",i);
- return 0;
- }
今天一下午效率滴没有 只有这浅浅的菜菜的两道题。