当前位置: 首页 > news >正文

专业网站设计发展前景旅游网站建设与网页设计意义

专业网站设计发展前景,旅游网站建设与网页设计意义,网站打开是别人的,用ip做网站题目描述 小明在学习了数据结构之后#xff0c;突然想起了以前没有解决的算术表达式转化成后缀式的问题#xff0c;今天他想解决一下。因为有了数据结构的基础小明很快就解出了这个问题#xff0c;但是他突然想到怎么求出算术表达式的前缀式和中缀式呢#xff1f;小明很困惑… 题目描述 小明在学习了数据结构之后突然想起了以前没有解决的算术表达式转化成后缀式的问题今天他想解决一下。 因为有了数据结构的基础小明很快就解出了这个问题但是他突然想到怎么求出算术表达式的前缀式和中缀式呢小明很困惑。聪明的你帮他解决吧。 输入 输入一算术表达式以\#\字符作为结束标志。数据保证无空格,只有一组输入输出 输出该表达式转换所得到的前缀式 中缀式 后缀式。分三行输出顺序是前缀式 中缀式 后缀式。示例输入 a*b(c-d/e)*f# 示例输出 *ab*-c/def a*bc-d/e*f ab*cde/-f* 前缀规律 1)  设立操作符栈OPTR结果栈RESULT 2) 从右向左遍历若当前字符是操作数则直接发送给RESULT栈 3)  若当前运算符的优先数高于等于栈顶运算符则进OPTR栈 4)  否则退出栈顶运算符发送给RESULT栈 5)   “” 对它之前后的运算符起隔离作用“”可视为自相应右括弧开始的表达式的结束符。(即读到右括号时总是将它压入OPTR栈中,读到左括号时将靠近栈顶的第一个右括号上面的运算符全部依次弹出送至RESULT栈后再丢弃右括号。 后缀规律 1)  设立操作符栈 2) 若当前字符是操作数则直接发送给后缀式 3)  若当前运算符的优先数高于栈顶运算符则进栈 4)  否则退出栈顶运算符发送给后缀式 5)   “(” 对它之前后的运算符起隔离作用“)”可视为自相应左括弧开始的表达式的结束符。(即读到左括号时总是将它压入栈中读到右括号时将靠近栈顶的第一个左括号上面的运算符全部依次弹出送至输出队列后再丢弃左括号。 ) #include iostream #include cstdio #include cstdlib #include cstring #include cmath #include algorithm using namespace std; int cmp(char c)//运算符的优先级 {     if(c ||c -) return 1 ;     if(c *||c /) return 2 ;     if(c ()  return 3 ;     if(c ))  return 4 ;     return 0 ; } void Qianzhui(char a[])//前缀式的获得数组模拟栈 {     int top2 -1, top3-1;     int l strlen(a);     char stack2[100], stack3[100];     for(int i l-2; i 0; i--)//从后往前读入     {         if(a[i] aa[i] z)//是英文则进数组stack3         {             stack3[top3] a[i];         }         else         {             if(top2 -1||stack2[top2] )|| a[i] ))//进数组stack2的条件             {                 stack2[top2] a[i];             }             else if(a[i] ()             {                 while(stack2[top2] ! ))                 {                     stack3[top3] stack2[top2--];                 }                 top2--;             }             else             {                 if(cmp(a[i]) cmp(stack2[top2]))//比较运算优先顺序                 {                     stack3[top3] stack2[top2--];                     i;                 }                 else                 {                     stack2[top2] a[i];                 }             }         }     }     while(top2 ! -1)//将数组stack2的所有元素挪进stack3     {         stack3[top3] stack2[top2--];     }     for(int i top3; i 0; i--)//逆序输出数组的所有元素         printf(%c, stack3[i]);     printf(\n); } void Zhongzhui(char a[])//中缀式的获得 {     for(int i 0; a[i] ! #; i)     {         if(a[i] !( a[i] ! ))             printf(%c, a[i]);     }     printf(\n); } void Houzhui(char a[])//后缀式的获得 {     int top1 0;     char stack1[100] ;     for(int i 0; a[i] ! #; i)     {         if(a[i] aa[i] z)//是字母则直接输出         {             printf(%c, a[i]) ;         }         else         {             if(top1 0)//数组空则直接进数组             {                 top1 ;                 stack1[top1] a[i] ;             }             else if(cmp(a[i]) cmp(stack1[top1]))//优先运算的比较             {                 if(cmp(a[i]) 4)                 {                     while(stack1[top1] ! ()                     {                         printf(%c, stack1[top1--]);                     }                     top1-- ;                 }                 else                 {                     top1 ;                     stack1[top1] a[i];                 }             }             else             {                 if(stack1[top1] ! ()                 {                     printf(%c, stack1[top1]) ;                     stack1[top1] a[i] ;                 }                 else                 {                     top1 ;                     stack1[top1] a[i] ;                 }             }         }     }     while(top1 ! 0)//数组所有元素的输出     {         printf(%c, stack1[top1]) ;         top1-- ;     }     printf(\n) ; } int main() {     char a[1005];     scanf(%s,a);     Qianzhui(a);//前缀式     Zhongzhui(a);//中缀式     Houzhui(a);//后缀式 } #include stdio.h #include stdlib.h #include string.h #define stackmax 10000 #define stacknum 10000 typedef int elemtype; typedef struct {     elemtype *base;     elemtype *top;     int stacksize; } sqstack; int initstack(sqstack s)//栈的初始化 {     s.base (elemtype *)malloc(stackmax * sizeof(elemtype));     if(!s.base) exit(0);     s.top s.base;     s.stacksize stackmax; } char push(sqstack s, char e)//进栈 {     if(s.top - s.base s.stacksize)     {         s.base (elemtype *)realloc(s.base,(s.stacksizestacknum) * sizeof(elemtype));         if(!s.base) exit(0);         s.top s.base s.stacksize;         s.stacksize stacknum;     }     *s.tope; } int pop(sqstack s)//出栈 {     if(s.tops.base) return 0;     s.top--;     return 1; } char gettop(sqstack s)//获得栈顶元素 {     if(s.top s.base) return 0;     char e *(s.top-1);     return e; } int stackempty(sqstack s)//判断栈是否为空 {     if(s.top s.base)         return 1;     else         return 0; } int cmp(char c)//用于比较优先级 {     if (c||c-)         return 1;     if (c*||c/)         return 2;     if (c()         return 3;     if (c))         return 4; } char lasttranslate(sqstack s, char c[])//后缀式的获得 {     int nstrlen(c);     int i;     for(i0; in; i)     {         if (c[i]ac[i]z)             printf(%c, c[i]);         else         {             if(c[i]!#)             {                 if(stackempty(s))                 {                     push(s, c[i]);                 }                 else                 {                     if(cmp(c[i])cmp(gettop(s)))                     {                         if(c[i]))                         {                             while(gettop(s)!()                             {                                 printf(%c, *(s.top-1));                                 pop(s);                             }                             pop(s);                         }                         else                         {                             push(s, c[i]);                         }                     }                     else                     {                         if(gettop(s)()                             push(s, c[i]);                         else                         {                             printf(%c, gettop(s));                             pop(s);                             push(s,c[i]);                         }                     }                 }             }         }     } } char pretranslate(sqstack s1, sqstack s2, char c[])//前缀式的获得 {     int nstrlen(c);     int i;     for(in-2; i0; i--)//逆序读入     {         if (c[i]ac[i]z)             push(s1, c[i]);         else             if(stackempty(s2))             {                 push(s2, c[i]);             }             else             {                 if(cmp(c[i])cmp(gettop(s2)))                 {                     if(c[i]()                     {                         while(gettop(s2)!))                         {                             push(s1, *(s2.top-1));                             pop(s2);                         }                         pop(s2);                     }                     else                     {                         push(s2, c[i]);                     }                 }                 else                 {                     if(gettop(s2)))                         push(s2, c[i]);                     else                     {                         push(s1, gettop(s2));                         pop(s2);                         push(s2,c[i]);                     }                 }             }     } } void putstack1(sqstack s)//栈内所有元素的输出 {     while(s.top s.base)     {         printf(%c, *(s.top-1));         s.top--;     } } void putstack2(sqstack s) {     while(s.top s.base)     {         printf(%c, *(s.base));         s.base;     } } char midtranlate(char c[])//中缀式的获得 {     int nstrlen(c), i;     for(i0;in;i)     {         if(c[i]!(c[i]!)c[i]!#)         printf(%c, c[i]);     } } int main() {     char c[110];     sqstack s;//定义栈     sqstack s1, s2;     initstack(s);//初始化栈     initstack(s1);     initstack(s2);     scanf(%s, c);     pretranslate(s1, s2, c);//前缀式     putstack2(s2);//前缀式的输出     putstack1(s1);     printf(\n);     midtranlate(c);//中缀式的输出     printf(\n);     lasttranslate(s, c);//后缀式     putstack1(s);//栈可能不为空     return 0; }
http://www.sadfv.cn/news/59180/

相关文章:

  • 企业网站建设费用账务处理用dreammwea怎么做视频网站
  • 亳州网站开发海南百度推广公司有哪些
  • 可以做招商的网站营销型网站的特点有哪些
  • 建被采集的网站pk10代码网站开发
  • 傻瓜式php网站开发工具ps培训班一般学费多少钱
  • 网站工作室模板wordpress链接自定义后文章打不开
  • wordpress 手机站插件新浪博客发布到wordpress
  • 内江网站开发网络有哪些广告推广方式
  • 印刷网站建设 优帮云让百度收录自己的网站
  • 高端网站建设与发展做淘宝这样的网站需要什么
  • 单页网站程序黑龙江网站建设开发
  • 做网站公司高端php官网网站建设
  • 企业建站系统官网郑州视频网站建设
  • 果洛州wap网站建设公司网站改版怎么弄
  • 滕州手机网站建设案例产品展示网站源码php
  • 做膜结构那个网站好注册页面
  • 网站相互推广怎么做0735郴州新网招聘
  • 广西住房城乡建设厅官方网站广州什么地方好玩
  • 网站开发用技术如何给英文网站做外链
  • 网站索引量wordpress自定义分类链接
  • 怎么创立网站旅游网站首页模板下载
  • 上海建设网站制古典风格网站模板
  • 备案网站大全动易网站地图
  • 有没有做旅游攻略的网站自己做网站语言包怎么做
  • 百度统计会对原网站产生影响吗地方网站全网营销
  • 接单做公司网站站群站长之家网站建设制作
  • 如何更快的让百度收录网站做dj平台网站
  • 南川网站建设公司济南市住房建设网站
  • 甘肃省城乡城乡建设厅网站首页wordpress调用页面名称
  • 书店建设网站国产搜什么关键词最好看