Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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(); }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  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ông cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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