Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: chuyển trung tố sang hậu tố

  1. #1
    Ngày gia nhập
    08 2008
    Bài viết
    15

    Mặc định chuyển trung tố sang hậu tố

    các bác pro giúp em xem bài này của em sai ở đâu !
    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. #define max 100
    5. typedef struct optor
    6.    {
    7.       char val;
    8.       optor *next;
    9.    };
    10. optor *ptr=NULL;
    11. int isempty()
    12.   {
    13.      return ptr!=NULL;
    14.   }
    15. void push(char ch)
    16.   {
    17.      optor *temp;
    18.      temp=new optor[1];
    19.      temp->val=ch;
    20.      temp->next=ptr;
    21.      ptr=temp;  
    22.   }
    23. char pop(void)
    24.   {
    25.     if(isempty()!=0)
    26.       {
    27.          optor *w=ptr;
    28.          char ch=ptr->val;
    29.          ptr=ptr->next;
    30.          delete(w);
    31.          return ch;
    32.       }
    33.     else
    34.       return 0;
    35.          
    36.   }
    37. char get()   // doc gia tri o dau stack ko lam thay doi stack
    38.  {
    39.     char ch;
    40.     return ch=ptr->val;
    41.  }
    42. int toantu(char ch)
    43.   {
    44.     switch(ch) {
    45.      case '+':
    46.      case '-':
    47.      case '*':
    48.      case '/':
    49.      case '^':
    50.         return 1; break;
    51.      case '(':
    52.      case ')':
    53.          return 0;break;
    54.      default :
    55.          return -1;
    56.      }}
    57. int uutien(char ch)
    58.   {
    59.       switch(ch){
    60.         case '(': return -1;break;
    61.         case ')': return 0;break;
    62.         case '^': return 4;break;
    63.         case '*':
    64.         case '/':return 3;break;
    65.         case '+':
    66.         case '-':return 2; break;
    67.         default:
    68.             return 1;
    69.         }
    70.  }
    71. char *poitfix(char *q,char *s)
    72.  {
    73.      char ch,x;
    74.      int i=0,j=0;
    75.      while((ch=q[i++])!=0)          // khi chua doc het q
    76.        {
    77.           switch(toantu(ch)) {
    78.           case -1:                // la toan hang
    79.               s[j++]=ch; break;   // doc vao s
    80.           case 0:                 //  la ()
    81.             if(uutien(ch)==-1)    // neu la  (
    82.                push(ch);          // day vao stack
    83.             else              // neu la )
    84.               while(uutien(x=pop())!=-1)  // khi ma dinh stack # (
    85.                 s[j++]=x;           //doc vao s
    86.                break;
    87.           case 1:  // neu la toan tu
    88.              while(uutien(x=get())>=uutien(ch)) // khi uu tien o dinh stack lon hon cua ch
    89.                {
    90.                   x=pop();     // doc tu stack
    91.                   s[j++]=x;    // day  vao s
    92.                }
    93.                push(ch);
    94.                x=pop(); // day ( ra khoi stack
    95.               break;
    96.              }
    97.         } ;
    98.      while(isempty()!=0)        // khi ma stack chua rong
    99.        s[j++]=pop();           // doc not cac toan tu vao s
    100.        
    101.      return s;
    102. }
    103. int main()
    104. {
    105.   char q[max],s[max],*p;
    106.   printf("\n nhap bieu thuc dang trung to :");
    107.   gets(q);  
    108.   puts(q);
    109.   printf("\n dang hau to :");
    110.   p=poitfix(q,s);
    111.   puts(p);
    112.   getch();
    113. }
    Đã được chỉnh sửa lần cuối bởi rox_rook : 23-03-2009 lúc 06:11 PM.

  2. #2
    Ngày gia nhập
    08 2008
    Bài viết
    15

    không ai xem giúp em cái à

Các đề tài tương tự

  1. Lập trình C++ Chuyển từ chuyển từ trung tố sang hậu tố và tính biểu thức hậu tố N chữ số như thế nào?
    Gửi bởi Chopper trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 22-08-2012, 09:48 PM
  2. Chuyển đổi trung cấp nghề sang trung cấp chính quy 2012
    Gửi bởi cafetrungnguyen trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-07-2012, 04:24 PM
  3. Lập trình C chuyển dãy kí tự trung tố sang hậu tố
    Gửi bởi tiennt261 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-12-2010, 11:24 PM
  4. lỗi: chuyển trung tố sang hậu tố
    Gửi bởi boy_popping trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 21-11-2010, 07:56 PM
  5. bài toán chuyển từ trung tố sang hậu tố. Help em với
    Gửi bởi Qµø©_†µan_¶«µ†€ trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 01-06-2010, 05:50 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn