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

Đề tài: Bài tập stack & queue ai giúp với

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    0

    Mặc định Bài tập stack & queue ai giúp với

    #include <stdio.h>
    struct NODE
    {
    int Key;
    NODE *pNext;
    };
    NODE* CreateNode(int Data)
    {
    NODE* pNode;
    pNode = new NODE;
    if (pNode == NULL)
    return NULL;
    pNode->Key = Data;
    pNode->pNext = NULL;
    return pNode;
    }
    bool AddHead(NODE* &pHead, int Data)
    {
    NODE *pNode;
    pNode = CreateNode(Data);
    if (pNode == NULL)
    return false;
    if (pHead == NULL)
    pHead = pNode;
    else {
    pNode->pNext = pHead;
    pHead = pNode;
    }
    return true;
    }
    NODE* GetHead(NODE* &pHead)
    {
    if(pHead == NULL)
    return NULL;
    NODE* pResult = pHead;
    pHead = pHead->pNext;
    return pResult;
    }
    NODE* GetTail(NODE* &pHead)
    {
    NODE *pNode;
    if(pHead == NULL) //<1>
    {
    return NULL;
    }
    else if(pHead->pNext == NULL) //<2>
    {
    pNode = pHead;
    pHead = NULL;
    return pNode;
    }
    pNode = pHead;
    while(pNode->pNext->pNext != NULL) //<3>
    {
    pNode = pNode->pNext;
    }
    NODE* pResult = pNode->pNext;
    pNode->pNext = NULL;
    return pResult;
    }
    void PrintList(NODE *pHead)
    {
    NODE *pNode;
    pNode = pHead;
    while (pNode != NULL)
    {
    printf("%5d", pNode->Key);
    pNode = pNode->pNext;
    }
    }
    void main()
    {
    NODE* pHead = NULL;
    int n = 1;
    while(n!=0)
    {
    AddHead(pHead, n);
    n--;
    }
    printf("Danh sach luc dau :\n");
    PrintList(pHead);
    printf("\n");
    NODE* pNode = GetTail(pHead);
    printf("Danh sach sau khi lay phan tu cuoi\n");
    PrintList(pHead);
    if(pNode != NULL) //<4>
    printf("\nGia tri Tail : %d\n", pNode->Key);
    else
    printf("\nNULL\n");
    NODE* pNode2 = GetHead(pHead);
    printf("Danh sach sau khi lay phan tu dau\n");
    PrintList(pHead);
    if(pNode2 != NULL)
    printf("\nGia tri Head : %d\n", pNode2->Key);
    else
    printf("\nNULL\n");
    }
    mình muốn biết ý nghĩa của từng lệnh, ai giúp mình với.
    và làm giúp mình phần này
    3. Giải thích <4> khi nào giá trị pNode khác NULL, khi nào pNode bằng NULL, ý nghĩa của
    mỗi trường hợp trên.
    4. Giải thích hàm GetTail ở các điểm <1>, <2>, <3> cho biết ý nghĩa của chúng.
    5. Sử dụng các hàm AddHead, GetHead, GetTail để cài đặt Stack và Queue.
    a. Stack: Trong hàm main, thực hiện việc thêm vào 3 giá trị do người dùng nhập vào
    (thực hiện 3 lệnh thêm phần tử vào stack), sau đó thực hiện 4 lần lệnh lấy giá trị
    phần tử ra khỏi stack, nếu có, in giá trị phần tử ra màn hình, nếu không có (stack
    rỗng), in ra màn hình “STACK RONG, KHONG LAY DUOC PHAN TU”.
    b. Queue: Trong hàm main, thực hiện việc thêm vào 3 giá trị do người dùng nhập vào
    (thực hiện 3 lần lệnh thêm phần tử vào queue), sau đó thực hiện 4 lần lệnh lấy giá trị
    phần tử ra khỏi queue, nếu có, in giá trị phần tử ra màn hình, nếu không có (queue
    rỗng), in ra màn hình “QUEUE RONG, KHONG LAY DUOC PHAN TU”.
    Áp dụng – Nâng cao
    1. Cài đặt hàm AddTail để có phiên bản cài đặt Stack (thêm phần tử vào cuối danh sách và lấy
    phần tử ở cuối danh sách liên kết) cũng như áp dụng 1 phiên bản khác khi cài đặt Queue
    (thêm phần tử vào cuối danh sách liên kết và lấy phần tử ở đầu danh sách liên kết).
    2. Nhận xét cách cài đặt trên ở phần 1 (áp dụng – nâng cao) so với chương trình mẫu đối với
    trường hợp stack cũng như queue.
    3. Sử dụng cấu trúc Stack để chuyển giá trị từ cơ số 10 sang cơ số 2.
    Gợi ý : thực hiện việc chia liên tiếp giá trị trong cơ số 10 cho 2, lấy phần dư đưa vào stack,
    cho đến khi giá trị đem đi chia là 0. In giá trị trong stack ra (đó chính là kết quả khi chuyển
    số từ hệ cơ số 10 sang hệ cơ số 2).
    Đã được chỉnh sửa lần cuối bởi conglam92 : 17-03-2012 lúc 05:27 PM. Lý do: thiếu

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    1) Mệt quá, đau mắt
    2) Xin code ?
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Người ta nhờ bạn giải thích dùm các lệnh kia thôi mà kung~ không thèm giúp đỡ nữa
    @conglam92 ko nên xin code bạn ơi!
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    552

    Mệt, ai thích thì vào đó mà giải thích. Còn tôi tôi đọc vào thấy muốn quăng gạch rồi
    @nhatminh266: Cậu nói được thì cậu giải thích hết "ý nghĩa của từng lệnh" trong cả cái đống code trên đi xem nào.
    Um Mani Padme Hum...!!

  5. #5
    Ngày gia nhập
    09 2011
    Nơi ở
    Registry
    Bài viết
    43

    Nếu mình giúp được thì mình đã giúp rùi, ko cần bạn phải nói đâu. Mình nghĩ bạn giỏi hơn mình nên nói vậy thui, bạn không giúp thì thôi vậy.
    C++ Code:
    1. int BanHoc=1, BanBiet=10;
    2.     if(BanHoc==0)
    3.         cout <<"Ban nen di hoc!";
    4.     else
    5.         if(BanBiet==10)
    6.             cout <<"Ban qua pro!";

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

  1. Giáo trình Stack và Queue, có code minh họa
    Gửi bởi vitbau1412 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 8
    Bài viết cuối: 21-08-2013, 04:00 PM
  2. Xây dựng chương trình mô phỏng: Danh sách liên kết, stack, queue?
    Gửi bởi cherry0103 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 28-06-2012, 11:49 PM
  3. Danh sách bài tập C++ cơ bản về con trỏ, stack and queue
    Gửi bởi K9K trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 12-09-2011, 03:35 PM
  4. Stack và Queue trên C++. Mọi người cùng góp ý nhé!
    Gửi bởi hoangedward trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 7
    Bài viết cuối: 29-03-2010, 08:44 PM
  5. STACK & QUEUE Dùng Mảng 1 Chiều !
    Gửi bởi kidkid trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 28-05-2007, 10:51 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