Runtime error in my code...
INFIX TO POSTFIX CONVERSION :
#include
#include
#include
using namespace std;
char ifx[50],pfx[50],stk[50];
int top=-1,n;
void push(char ch)
{
if(top!=n-1)
{
top++;
stk[top]=ch;
}
else
cout<<"\nThe stack is full.";<br />
}
char pop()
{
char rmv;
if(top!=-1)
{
rmv=stk[top];
top--;
return rmv;
}
else
return '#';
}
char topele()
{
char ch;
if(top==-1)
{
ch='#';
return ch;
}
else
ch=stk[top];
}
int chkpres(char ch)
{
ch=topele();
switch(ch)
{
case '^':return 7;
break;
case '/':return 6;
break;
case '*':return 5;
break;
case '+':return 4;
break;
case '-':return 3;
break;
default:return 0;
break;
}
}
/*int braces(char *s)
{
int lftbr,rgtbr=0;
for(int i=0;s[i];++i)
{
if(s[i]=='(')
lftbr++;
else
rgtbr++;
}
if(lftbr==rgtbr)
return 0;
else if(lftbr
return 1;
else return -1;
}*/
int main()
{
char ele,elem,chk,popp,topp;
int pre,pres;
cout<<"\nEnter how many elements you want to enter in the infix expression: ";<br />
cin>>n;
cout<<"\nEnter the infix expression: ";<br />
for(int i=0;i
cin>>ifx[i];
topp=topele();
strcpy(pfx," ");
for(int i=0,j=0;ifx[i]!='\0',pfx[j]!='\0';++i,++j)
{
ele=ifx[i];
if(ele!='^' && ele!='*' && ele!='/' && ele!='+' && ele!='-')
pfx[j++]=ifx[i];
else if(ele=='^'||ele=='*'||ele=='/'||ele=='+'||ele=='-')
{
if(topp=='^'||topp=='*'||topp=='/'||topp=='+'||topp=='-')
{
pre=chkpres(ele);
pres=chkpres(topp);
if(pre>pres)
{
push(pre);
top++;
}
else if(pre<=pres)<br />
pfx[j++]=pres;
}
else
{
push(ele);
topp=ele;
}
}
else if(ele=='(')
{
i++;
}
else if(ele==')')
{
while(topp!='#')
{
popp=topp;
pfx[i]=popp;
}
}
cout<<"---------------"<<pfx[j++];<br />
}
cout<<"\nThe postfix expression is: ";<br />
for(int i=0;pfx[i]!='\0';++i)
{
cout<<pfx[i];<br />
}
cout<<endl;<br />
return 0;
}
Comments
-
I refuse to even read this code. No indentation, no comments nor explanations of any kind... I mean: come on!0
-
marc wrote:I refuse to even read this code. No indentation, no comments nor explanations of any kind... I mean: come on!
I agree, it would be best if you paste the indented code into pastbin.com and give a link here to the pastebin entry.0
Categories
- All Categories
- 179 LFX Mentorship
- 179 LFX Mentorship: Linux Kernel
- 776 Linux Foundation IT Professional Programs
- 384 Cloud Engineer IT Professional Program
- 175 Advanced Cloud Engineer IT Professional Program
- 76 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 103 Cloud Native Developer IT Professional Program
- 7.7K Training Courses & Learning Paths
- 16 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 42 Cloud & Containers Training
- 6 Cybersecurity Training
- 4 DevOps & Site-Reliability Training
- 3 Linux Kernel Development Training
- 2 Networking Training
- 2 Open Source Best Practice Training
- 5 System Administration Training
- 1 System Engineering Training
- 6 Web & Application Development Training
- 798 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 96 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 92 Storage
- 774 Linux Distributions
- 82 Debian
- 68 Fedora
- 24 Linux Mint
- 13 Mageia
- 24 openSUSE
- 151 Red Hat Enterprise
- 32 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 473 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 104 Linux Security
- 79 Network Management
- 102 System Management
- 46 Web Management
- 173 Mobile Computing
- 32 Android
- 126 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 407 Off Topic
- 128 Introductions
- 35 Study Material
- 1.1K Programming and Development
- 311 Kernel Development
- 727 Software Development
- 1K Software
- 419 Applications
- 183 Command Line
- 5 Compiling/Installing
- 71 Games
- 320 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)