⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bdszh.txt

📁 偶写了个将中序表达式转化成后序表达式的程序。不过只能对单字符进行操作
💻 TXT
📖 第 1 页 / 共 5 页
字号:
                                  while(swap->link->info!='.') 
                              {swap=swap->link;i++;}
                                  swap=temp;
                                  while(swap->link->info!='.'&&--i!=0){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*10;
                                   t2=t2+m;
                                   swap=swap->link;
                                  }
                                  if(i==0) 
                              {t2=t2+(NumberType)swap->link->info-'0'; 
                              swap=swap->link->link;}
                                  i=1;
                                  while(swap->link->info!='_'){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*1/10;
                                   t2=t2+m;
                                   swap=swap->link;
                                   i++;
                                  }
                                 }
                                 else if(!isPoint_included(temp)){
                                  
                              while(swap->link->info!='_'){swap=swap->link;i++;}
                                  swap=temp;
                                  while(swap->link->info!='_'&&--i!=0) {
                                    j=i;
                                    m=(NumberType)swap->link->info-'0';
                                    while(j--!=0) m=m*10;
                                           t2=t2+m;
                                          swap=swap->link;
                                  }
                                  if(i==0||i==-1) 
                              {t2=t2+(NumberType)swap->link->info-'0';swap=swap->link;}
                                 }
                                 /*calculate t*/
                                 if(p->link->info=='+') t=t+t2;
                                 else if(p->link->info=='-') t=t-t2;
                                 else if(p->link->info=='*') t=t*t2;
                                 else if(p->link->info=='/') t=t2/t;
                                 /* dealt with the left */
                                 temp=swap=pllist->base;
                                 while(swap!=q){
                                  if(swap->info=='_') temp=swap;
                                  swap=swap->link;
                                 }
                                 q=temp;
                                 p=p->link;
                                }
                                
                              /*****************************************************************/
                                
                              /*****************************************************************/
                                else if(isOperator(p->info) && 
                              !isOperator(p->link->info)&&Calculator_underline(p->link)==1){
                                 temp=p;
                                 while(!isOperator(p->link->info)) p=p->link;
                                 swap=temp;
                                 t1=t2=0;i=0;
                                 if(isPoint_included(temp)){
                                  while(swap->link->info!='.') 
                              {swap=swap->link;i++;}
                                  swap=temp;
                                  while(swap->link->info!='.'&&--i!=0){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*10;
                                   t1=t1+m;
                                   swap=swap->link;
                                  }
                                  if(i==0||i==-1) 
                              {t1=t1+(NumberType)swap->link->info-'0'; 
                              swap=swap->link->link;}
                                  i=1;
                                  while(swap->link->info!='_'){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*1/10;
                                   t1=t1+m;
                                   swap=swap->link;
                                   i++;
                                  }
                                 }
                                 else if(!isPoint_included(temp)){
                                  
                              while(swap->link->info!='_'){swap=swap->link;i++;}
                                  swap=temp;
                                  while(swap->link->info!='_'&&--i!=0) {
                                    j=i;
                                    m=(NumberType)swap->link->info-'0';
                                    while(j--!=0) m=m*10;
                                           t1=t1+m;
                                          swap=swap->link;
                                  }
                                  if(i==0) 
                              {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
                                 }
                                  /*calculate t*/
                                 if(p->link->info=='+') t=t+t1;
                                 else if(p->link->info=='-') t=t-t1;
                                 else if(p->link->info=='*') t=t*t1;
                                 else if(p->link->info=='/') t=t/t1;
                                 /* dealt with the left */
                                 temp=swap=pllist->base;
                                 while(swap!=q){
                                  if(swap->info=='_') temp=swap;
                                  swap=swap->link;
                                 }
                                 q=temp;
                                 p=p->link;
                                }
                                
                              /*******************************************************************/
                                
                              /********************************************************************/
                                else 
                              if(isOperator(p->info)&&!isOperator(p->link->info)&&Calculator_underline(p->link)==2){
                                 PNode ID;
                                 temp1=temp=pllist->base;
                                    while(temp!=q){                         /* 
                              find temp */
                                       if(temp->info=='_') temp1=temp;
                                       temp=temp->link;
                                 }
                                    ID=temp=temp1;
                                 temp1=q=p;
                                 while(!isOperator(p->link->info)) p=p->link;
                                 while(q->link!=p){
                                  if(q->link->info=='_') temp=q->link;
                                  q=q->link;
                                 }
                                 q=temp;
                                 temp=temp1;
                                 swap=q; t1=0;i=0;       /* calculate t1 */
                                 if(isPoint_included(q)){           /*include 
                              point */
                                  
                              while(swap->link->info!='.'){swap=swap->link;i++;}
                                  swap=q;
                                  while(swap->link->info!='.'&&--i!=0){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*10;
                                   t1=t1+m;
                                   swap=swap->link;
                                  }
                                  if(i==0 ||i==-1) 
                              {t1=t1+(NumberType)swap->link->info-'0'; 
                              swap=swap->link->link;}
                                  i=1;
                                  while(swap->link->info!='_'){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*1/10;
                                   t1=t1+m;
                                   swap=swap->link;
                                   i++;
                                  }
                                 }
                                 else if(!isPoint_included(q)){     /*doesn't 
                              include point*/
                                        while(swap->link->info!='_') 
                              {swap=swap->link; i++;}
                                        swap=q;
                                        while(swap->link->info!='_'&&--i!=0) {
                                    j=i;
                                    m=(NumberType)swap->link->info-'0';
                                    while(j--!=0) m=m*10;
                                           t1=t1+m;
                                          swap=swap->link;
                                  }
                                  if(i==0 || i==-1) 
                              {t1=t1+(NumberType)swap->link->info-'0';swap=swap->link;}
                                 }
                                    swap=temp; t2=0;i=0;   /* calculate t2 */
                                 if(isPoint_included(temp)){   /*include point 
*/
                                  
                              while(swap->link->info!='.'){swap=swap->link;i++;}
                                  swap=temp;
                                  while(swap->link->info!='.'&&--i!=0){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*10;
                                   t2=t2+m;
                                   swap=swap->link;
                                  }
                                  if(i==0 ||i==-1) 
                              {t2=t2+(NumberType)swap->link->info-'0'; 
                              swap=swap->link->link;}
                                  i=1;
                                  while(swap->link->info!='_'){
                                   j=i;
                                   m=(NumberType)swap->link->info-'0';
                                   while(j--!=0) m=m*1/10;
                                   t2=t2+m;
                                   swap=swap->link;
                                   i++;
                                  }
                                 }
                                 else if(!isPoint_included(temp)){
                                  
                              while(swap->link->info!='_'){swap=swap->link;i++;}
                                        swap=temp;
                                        while(swap->link->info!='_'&&--i!=0) {
                                    j=i;
                                    m=(NumberType)swap->link->info-'0';
                                    while(j--!=0) m=m*10;
                                           t2=t2+m;
                                          swap=swap->link;
                                  }
                                  if(i==0||i==-1) 
                              {t2=t2+(NumberType)swap->link->info-'0';swap=swap->link;}
                                 }
                                 if(p->link->info=='+') tmark1=t1+t2;
                                 else if(p->link->info=='-') tmark1=t1-t2;
                                 else if(p->link->info=='*') tmark1=t1*t2;
                                 else if(p->link->info=='/') tmark1=t2/t1;
                                 p=p->link;
                                 if(p->link->info=='+') t=t+tmark1;
                                 else if(p->link->info=='-') t=t-tmark1;
                                 else if(p->link->info=='*') t=t*tmark1;
                                 else if(p->link->info=='/') t=t/tmark1;
                                 p=p->link;
                                 q=ID;
                                }
                                
                              /********************************************************************/
                                
                              /*********************************************************************/
                                else 
                              if(isOperator(p->info)&&!isOperator(p->link->info)&&Calculator_underline(p->link)==1){
                                 temp1=p;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -