搜索
首页 电脑/网络 软件

C语言,中缀表达式转后缀表达式?

求教高手,请上传一个用C语言编写的"中缀表达式转后缀表达式"的程序(并将每步用文字说明),谢谢了.

全部回答

2018-04-08

0 0
    #include #include #include #define MaxSize 32 typedef char Qelemtype; typedef struct { Qelemtype *base; //指向队列的存储空间; int front; //指向队头元素; int rear; //指向队尾元素的下一位置; }SqQueue; typedef struct LNode { int data; struct LNode *next; }Snode,*LinkStack; void DestroyLinStack(LinkStack &S) {//销毁链栈S。
     LinkStack temp=S,p; while(temp) { p=temp; temp=temp->next; free(p); } } void Push(LinkStack &S, char x) {//入栈。
   LinkStack temp=(LinkStack )malloc(sizeof(Snode )); temp->data=x; temp->next=S->next; S->next=temp; } void Pop(LinkStack &S, char &x) {//出栈。
     LinkStack temp=S->next; x=temp->data; S->next=temp->next; free(temp); } int GetTop(LinkStack &S) {//读栈顶元素。
     int x; if(S->next) x=S->next->data; else coutnext=0; } int InitQueue(SqQueue &Q) {//队列的初始化; ont= ar=0; se=(Qelemtype *)malloc(MaxSize*sizeof(Qelemtype)); if(! se) exit(1); se[ ont]='\0'; return 1; } int QueueLength(SqQueue Q) {//计算队列的长度; return ( ont+MaxSize)%MaxSize; } void EnQueue(SqQueue &Q, Qelemtype x) {//入队; if(QueueLength(Q)==MaxSize) { coutnext==0); } int Priority(char oper) { switch(oper) { case '(': return 0; case '+': case '-': return 1; case '*': case '/': return 2; } } void convertpostexp(char *str,SqQueue &post) { char c,t; int i=0,k=strlen(str); LinkStack S; Initstack(S); Push(S,'('); InitQueue(post); while(i>str; convertpostexp(str,post); cout<<"转换成后缀表达式是:"<<endl; DispQueue(post); cout<<endl; DestroyQueue(post); } 。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
多媒体软件
系统软件
办公软件
网络软件
图像处理软件
举报
举报原因(必选):
取消确定举报