امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
تبدیل infix به postfix به وسیله لیست پیوندی
نویسنده پیام
zohreh.ma آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 1
تاریخ عضویت: آذر ۱۳۹۳

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #1
Question  تبدیل infix به postfix به وسیله لیست پیوندی
سلام.
خواهش میکنم کمک کنید
برنامه تبدیل infix به postfix و postfix به infix با استفاده از لیست پیوندی با زبان ++c
۲۷-اردیبهشت-۱۳۹۴, ۲۱:۳۵:۳۶
ارسال‌ها
پاسخ
تشکر شده توسط : lillieei3
hartan آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 1
تاریخ عضویت: اردیبهشت ۱۳۹۵

تشکرها : 5
( 10 تشکر در 10 ارسال )
ارسال: #2
RE: تبدیل infix به postfix به وسیله لیست پیوندی
سلامم
این کد Postfix به prefix

کد:
#include <iostream>
#include <cstring>
#include <stack>
#include <algorithm>
#define flag '#'

using namespace std;

bool isOperator(char c)
{
    if(c=='+' || c=='-' || c=='*' || c=='/' || c=='^' || c=='$')
    return true;
    else
    return false;
}

int main()
{
    stack<char> stk;
    char postfix[30], prefix[30];
    int j=0,len;
    cout<<"Input a postfix expression: ";
    cin>>postfix;
    len = strlen(postfix);
    for(int i=len-1;i>=0;i--)
    {
        if(isOperator(postfix[i]))
        stk.push(postfix[i]);
        else
        {
            prefix[j++] = postfix[i];
            while(!stk.empty() && stk.top()==flag)
            {
                stk.pop();
                prefix[j++] = stk.top();
                stk.pop();
            }
            stk.push(flag);
        
        }
    }
    prefix[j] = 0;
    reverse(prefix, prefix + len);
    cout<<"The prefix expression is: "<<prefix;
    return 0;
}


(۲۷-اردیبهشت-۱۳۹۴, ۲۱:۳۵:۳۶)zohreh.ma نوشته است: سلام.
خواهش میکنم کمک کنید
برنامه تبدیل infix به postfix و postfix به infix با استفاده از لیست پیوندی با زبان ++c
۱۳-اردیبهشت-۱۳۹۵, ۱۵:۱۳:۱۸
ارسال‌ها
پاسخ
تشکر شده توسط : babyy
hartan آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 1
تاریخ عضویت: اردیبهشت ۱۳۹۵

تشکرها : 5
( 10 تشکر در 10 ارسال )
ارسال: #3
RE: تبدیل infix به postfix به وسیله لیست پیوندی
این هم prefix به Postfix

کد:
void main()
{
char str[MAX],resstr[MAX],temp[MAX];
int i,z;
clrscr();
printf(“nEnter a prefix string?”);
gets(str);
for(i=0;str[i]!=’�';i++);
for(i=i-1,z=0;i>=0;z++,i–)
temp[z]=str[i];
temp[z]=’�';
printf(“nPrefix string: %s”,str);
prefix_to_postfix(temp,resstr);
printf(“nPostfix string: %s”,resstr);
getch();
}

void push(struct stack *s,char ch)
{
if(s->top==MAX-1)
{printf(“Stack Overflow!”);
exit(1);
}
s->arr[++(s->top)]=ch;
}

char pop(struct stack *s)
{
if(s->top==-1)
{printf(“Stack Underflow!”);
exit(1);
}
return(s->arr[(s->top)–]);
}

int isdigit(char ch)
{return(ch>=’0′ && ch<=’9′);
}

void prefix_to_postfix(char instr[],char outstr[])
{
int i,j,ct=1,z=0;
char ch,opnd1,opnd2;
struct stack stk;
stk.top=-1;
for(i=0;instr[i]!=’�';i++)
{
ch=instr[i];
if(isdigit(ch))
{push(&stk,ch);
}
else
{
if(ct==1)
{opnd1=pop(&stk);
opnd2=pop(&stk);
outstr[z++]=opnd1;
outstr[z++]=opnd2;
outstr[z++]=ch;
ct++;
}
else
{
opnd2=pop(&stk);
outstr[z++]=opnd2;
outstr[z++]=ch;
}
}
}
outstr[z]=’�';
}


(۲۷-اردیبهشت-۱۳۹۴, ۲۱:۳۵:۳۶)zohreh.ma نوشته است: سلام.
خواهش میکنم کمک کنید
برنامه تبدیل infix به postfix و postfix به infix با استفاده از لیست پیوندی با زبان ++c
۱۳-اردیبهشت-۱۳۹۵, ۱۵:۱۶:۵۹
ارسال‌ها
پاسخ
تشکر شده توسط : babyy
hartan آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 1
تاریخ عضویت: اردیبهشت ۱۳۹۵

تشکرها : 5
( 10 تشکر در 10 ارسال )
ارسال: #4
RE: تبدیل infix به postfix به وسیله لیست پیوندی
این هم Infix به Postfix
کد:
//Evaluate the given expression
#include<iostream>
#include<stack>
#include<vector>
using namespace std;

//Only single digit numbers permitted

int GetPrecedence(char op)
{
switch (op)
{
case '+':
case '-':
return 1;
case '*':
case '/':
default:
return 2;
}
}
char* ConvertInorderToPreOrder(char* InOrderExp, int Size)
{
stack<char> Operators;
vector<char> PostOrderResult;
for (int i = Size-1; i >=0; i--)
if (InOrderExp[i] >= '0'&& InOrderExp[i] <= '9')
PostOrderResult.push_back(InOrderExp[i]);
else
{
while (!Operators.empty() && GetPrecedence(Operators.top()) >= GetPrecedence(InOrderExp[i]))
{
PostOrderResult.push_back(Operators.top());
Operators.pop();
}
Operators.push(InOrderExp[i]);
}
while (!Operators.empty())
{
PostOrderResult.push_back(Operators.top());
Operators.pop();
}
char *ResultString = (char*)malloc(sizeof(char)*PostOrderResult.size()+1);
memset(ResultString, 0, sizeof(char)*(PostOrderResult.size() + 1));
for (int i = 0; i < PostOrderResult.size(); i++)
ResultString[i] = PostOrderResult[i];
ResultString[PostOrderResult.size()] = '\0';
_strrev(ResultString);
return ResultString;
}
char* ConvertInorderToPostOrder(char* InOrderExp, int Size)
{
stack<char> Operators;
vector<char> PostOrderResult;
for (int i = 0; i < Size; i++)
if (InOrderExp[i] >= '0'&& InOrderExp[i] <= '9')
PostOrderResult.push_back(InOrderExp[i]);
else
{
while (!Operators.empty() && GetPrecedence(Operators.top()) >= GetPrecedence(InOrderExp[i]))
{
PostOrderResult.push_back(Operators.top());
Operators.pop();
}
Operators.push(InOrderExp[i]);
}
while (!Operators.empty())
{
PostOrderResult.push_back(Operators.top());
Operators.pop();
}
char *ResultString = (char*)malloc(sizeof(char)*PostOrderResult.size()+1);
memset(ResultString, 0, sizeof(char)*(PostOrderResult.size()+1));
for (int i = 0; i < PostOrderResult.size(); i++)
ResultString[i] = PostOrderResult[i];
ResultString[PostOrderResult.size()] = '\0';
return ResultString;
}

int main()
{

char InExp[] = "2+3*7-5*2-4/2*5+1-4+2/2+1";
cout << "\nInput: " << InExp;
cout << "\n\n";
cout << "\n\PostFix = " << ConvertInorderToPostOrder(InExp, strlen(InExp));
cout << "\n\PreFix = " << ConvertInorderToPreOrder(InExp, strlen(InExp));
cout << "\n\nEnd of code\n\n";
system("pause");
return 0;
}


(۲۷-اردیبهشت-۱۳۹۴, ۲۱:۳۵:۳۶)zohreh.ma نوشته است: سلام.
خواهش میکنم کمک کنید
برنامه تبدیل infix به postfix و postfix به infix با استفاده از لیست پیوندی با زبان ++c
۱۳-اردیبهشت-۱۳۹۵, ۱۵:۱۷:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : babyy


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [پروژه] الگوریتم زمانبندی RR به زبان C همراه سورس کد Ghoghnus 2 417 ۰۳-بهمن-۱۳۹۸, ۱۴:۲۷:۵۷
آخرین ارسال: Ghoghnus
  [سوال] کپی برنامه به بخش دیگر mirage0411 3 2,757 ۲۲-بهمن-۱۳۹۶, ۱۹:۵۵:۵۸
آخرین ارسال: babyy
Question درخواست برنامه ای به زبان ++C saeidengman 11 14,141 ۰۵-تير-۱۳۹۶, ۱۱:۴۷:۰۱
آخرین ارسال: alivolley
  تبدیل کد بسکام به کدویزن cloner006 7 5,496 ۰۳-آذر-۱۳۹۵, ۰۴:۱۸:۰۱
آخرین ارسال: eny.m
Exclamation درخواست كد براي ارسال به ايميل mortezadevil 1 1,966 ۱۴-تير-۱۳۹۵, ۱۲:۱۱:۴۰
آخرین ارسال: lord_viper
  [سوال] انتقال اطلاعات به کامپیوتر mohi294 4 2,487 ۲۹-بهمن-۱۳۹۳, ۲۱:۳۵:۴۱
آخرین ارسال: sharin
  [سوال] تبدیل دسیمال 24 بیت به باینری a.mehran 1 1,648 ۲۳-دى-۱۳۹۳, ۱۶:۳۷:۳۶
آخرین ارسال: NO DONGLE
  [سوال] فرستادن فایل متنی به پرینتر alika2005 0 1,197 ۱۴-خرداد-۱۳۹۳, ۱۶:۴۱:۳۹
آخرین ارسال: alika2005
  کمک برای شروع به نوشتن درایور salehjg 5 7,081 ۲۸-فروردین-۱۳۹۳, ۰۳:۲۷:۰۲
آخرین ارسال: salehjg
Question [سوال] تبدیل نوع متغیر (float به unsigned char) در زبان سی PRO 3 6,453 ۰۹-مرداد-۱۳۹۲, ۲۰:۱۶:۰۰
آخرین ارسال: PRO

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS