码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 栈的实际应用-后缀表达式与顺序表思考题


     

     作者简介:大家好我是小唐同学(๑>؂<๑),为梦想而奋斗的小唐,让我们一起加油!!!

    个人主页:小唐同学(๑>؂<๑)的博客主页

    系列专栏:数据结构

    博友们如果也是新手入门数据结构我希望大家可以多加练习 数据结构题库在牛客网就有已经给大家附上链接,可以直接点击跳转:刷题点这里

    牛客网支持ACM模式哦,刷算法题也很推荐哦!!!

    下面上文章------》

     

    目录

     

    刷题网站图示:

    栈的实际应用-后缀表达式:

    用栈来计算后缀表达式思想:

    用栈来计算后缀表达式代码:

    顺序表思考题:

    划重点:

    顺序表思考题代码:


    刷题网站图示:

    栈的实际应用-后缀表达式:

    我们平常习惯所用为中缀表达式,举个例子:

    中缀表达式:(a+b+c*d)/e

    后缀表达式:abcd*++e/

    用栈来计算后缀表达式思想:

    遇到数值 直接入栈,遇到符号则出栈两个元素  扫描到'\0'结束(或者算出字符数组的长度限制循环)  最后返回栈低元素便是表达式的结果。

    用栈来计算后缀表达式代码:

    1. # include
    2. # include
    3. # define maxsize 100
    4. int caozuo(int a,char op,int b)
    5. {
    6. if(op=='*')
    7. return a*b;
    8. if(op=='+')
    9. return a+b;
    10. if(op=='-')
    11. return a-b;
    12. if(op=='/')
    13. {
    14. if(b==0)
    15. {
    16. printf("异常");
    17. return 0;//异常
    18. }
    19. else
    20. return a/b;
    21. }
    22. }
    23. int houzhui(char a[])
    24. {
    25. int st[maxsize];
    26. int k,b,c,i;
    27. char q;
    28. int tope=-1;
    29. int n=strlen(a);
    30. for(i=0;a[i]!='\0';i++)
    31. {
    32. if(a[i]>='0'&&a[i]<='9')
    33. {
    34. // tope;
    35. st[++tope]=a[i]-'0';
    36. }
    37. else
    38. {
    39. k=st[tope--];
    40. b=st[tope--];
    41. //出栈两个
    42. q=a[i];
    43. c=caozuo(b,q,k);
    44. ++tope;
    45. st[tope]=c;
    46. //printf("%d",);
    47. }
    48. }
    49. return c;
    50. }
    51. int main()
    52. {
    53. char a[]="1221/++2/";
    54. int p=houzhui(a);
    55. printf("%d",p);
    56. return 0;
    57. }

    顺序表思考题:

    有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个整型变量

    顺序表思考题代码:

    1. # include
    2. int main()
    3. {
    4. int a[5];
    5. for(int i=0;i<5;i++)
    6. {
    7. scanf("%d",&a[i]);
    8. }
    9. int i=a[0];
    10. while(i/10<5)
    11. {
    12. if(i%10>a[i/10])
    13. {
    14. i=i-i%10;
    15. i=i+a[i/10];
    16. }
    17. i=i+10;
    18. }
    19. i=i%10;
    20. printf("%d",i);
    21. return 0;
    22. }

    今天一下午效率滴没有  只有这浅浅的菜菜的两道题。

  • 相关阅读:
    数据库设计以及优化
    Power Automate-时间戳转化为时区时间
    Linux 命令使用笔记【mapstat】
    mysql5.7从入门到精通笔记
    [maven] 使用 Nexus 管理 repository
    88.Django中间件的说明与使用方法
    七月集训day06 最长回文子串 —— 一题多解
    『手撕Vue-CLI』添加自定义指令
    在Docker中运行PostgreSQL数据库
    MySQL数据备份与恢复
  • 原文地址:https://blog.csdn.net/m0_61469860/article/details/126375099
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号