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

Đề tài: Hàng đợi | Thuật toán in đảo số nguyên n

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

    Mặc định Hàng đợi | Thuật toán in đảo số nguyên n

    Em đang tìm hiểu về Hàng đợi Queue. Em muốn nhờ anh (chị) giải thích giúp em thuật toán của bài trên đây với ạh. Ở trường em vẫm chưa học môn CTDL. Em xin cảm ơn.

    HTML Code:
    #include<iostream.h> #include<stdlib.h> #include<conio.h> #define MaxLength 1000 struct Queue { int a[MaxLength+1]; int front,rear; }; void CreateQ(Queue &Q) { Q.front=0; Q.rear=0; } int EmptyQ(Queue Q) { if (Q.front==0 && Q.rear==0) return 1; else return 0; } void AddQ(Queue &Q, int x) { if (EmptyQ(Q)) { Q.front=Q.rear=1; Q.a[Q.rear]=x; } else { Q.rear++; Q.a[Q.rear]=x; } } void RemoveQ(Queue &Q, int &x) { if (EmptyQ(Q)) cout<<"\n hang doi rong!:"; else { x=Q.a[Q.front]; if (Q.front==Q.rear) Q.front=Q.rear=0; else Q.front++; } } void indao(int n) { Queue q; CreateQ(q); int x; while (n>0) { AddQ(q, n%10); n=n/10; } while(!EmptyQ(q)) { RemoveQ(q,x); cout<<x<<" "; } } void main() { int n; clrscr(); cout<<"Nhap so nguyen duong n:\t"; cin>>n; cout<<"\nSo n in nguoc la:\t"; indao(n); getch(); }

  2. #2
    Ngày gia nhập
    03 2008
    Nơi ở
    Hồ chí minh
    Bài viết
    134

    C Code:
    1. #include<iostream.h>
    2. #include<stdlib.h>
    3. #include<conio.h>
    4. #define MaxLength 1000
    5. struct Queue//khai báo kiểu dữ liệu cho Queue
    6. {
    7.    int a[MaxLength+1];//mảng có độ dài là  MaxLength+1
    8.    int front,rear;//là đầu và cuối của queue
    9. };
    10. void CreateQ(Queue &Q)//hàm khởi tạo queue
    11. {
    12.     Q.front=0;
    13.     Q.rear=0;
    14. }
    15. int EmptyQ(Queue Q)//kiểm tra queue rỗng
    16. {
    17.     if (Q.front==0 && Q.rear==0)/*nêu mà đầu và cuối đều bằng 0->queue rỗng*/
    18.         return 1;
    19.     else
    20.         return 0;
    21. }
    22. void AddQ(Queue &Q, int x)//them một phần tử vào queue
    23. {
    24.     if (EmptyQ(Q))//kiêm tra queue
    25.     {
    26.        Q.front=Q.rear=1;//tăng đầu và cuối của lên 1
    27.        Q.a[Q.rear]=x;//thành phần đầu tiên của queue là x
    28.     }
    29.  
    30.     Else//ngược lại(queue ko rỗng)
    31.     {
    32.        Q.rear++;//tăng rear lên 1
    33.        Q.a[Q.rear]=x;//gán cho thanh phần tieps theo bằng X
    34.     }
    35. }
    36. void RemoveQ(Queue &Q, int &x)/*lấy phần tủ đầu  của queue khỏi sau đó xóa phần tủ đó trong queue đi*/
    37. {
    38.     if (EmptyQ(Q))
    39.         cout<<"\n hang doi rong!:";
    40.     else
    41.         {
    42.             x=Q.a[Q.front];
    43.             if (Q.front==Q.rear)
    44.                 Q.front=Q.rear=0;
    45.             else
    46.                 Q.front++;
    47.         }
    48. }
    49. void indao(int n)
    50. {
    51.     Queue q;//khai báo biến q có kiểu dữ liệu queue
    52.     CreateQ(q);//tạo queue
    53.     int x;//biến để lấy phần tử của queue
    54.     while (n>0)//xét số n  vi du n=5 4 3
    55.     {
    56.         AddQ(q, n%10);//add 3 vào queue
    57.         n=n/10;//n mới=5 4
    58.     }
    59. /*ket thuc vong lap ta có mảng queue như sau: 3 4 5 với q.front=3,q.rear=5;*/
    60.     while(!EmptyQ(q))//kết thúc khi queue rỗng
    61.     {
    62.         RemoveQ(q,x);/*lấy front của queue ra và xóa nó đi,gán cho front của queue giá trị kế nó*/
    63.         cout<<x<<"  ";//in x ra màn hình
    64.     }
    65. }
    66. void main()
    67. {
    68.     int n;
    69.     clrscr();
    70.     cout<<"Nhap so nguyen duong n:\t";
    71.     cin>>n;
    72.     cout<<"\nSo n in nguoc la:\t";
    73.     indao(n);
    74.     getch();
    75.  
    76. }
    @hoangchauhamy:Bạn thêm highlight cho code của bạn nữa nhé
    Đã được chỉnh sửa lần cuối bởi lethanh : 18-05-2009 lúc 08:21 AM.
    Every step I'm taking
    Every move I make
    Feels lost with no direction
    My faith is shaking
    But I gotta keep trying.

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    6

    Em cảm ơn nhiều ạh !

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

  1. Thuật toán tìm số nguyên tố?
    Gửi bởi comeonbaby trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 92
    Bài viết cuối: 22-03-2017, 08:39 PM
  2. Bài tập C giải thuật nhập vào số nguyên n in ra n số nguyên tố đầu tiên?
    Gửi bởi LTC trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 48
    Bài viết cuối: 25-04-2013, 07:40 PM
  3. thuật toán số nguyên tố????
    Gửi bởi anhtbok trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 30-03-2012, 10:33 AM
  4. Tìm và in ra các số nguyên tố thỏa mãn đề bài bằng C, thuật toán của mình sai ở đâu?
    Gửi bởi piavg trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 8
    Bài viết cuối: 16-11-2011, 04:03 PM
  5. Lập trình C xin code cài đặt thuật toán sàng nguyên tố để liệt kê các số nguyên tố 2->480000
    Gửi bởi ngocdung_088 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 23
    Bài viết cuối: 06-12-2010, 11:53 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