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

Đề tài: Chèn 1 node vào DSLK đôi (tăng dần ) để được 1 DSLK đôi ( tăng dần ) ?

  1. #1
    Ngày gia nhập
    06 2011
    Bài viết
    5

    Mặc định Chèn 1 node vào DSLK đôi (tăng dần ) để được 1 DSLK đôi ( tăng dần ) ?

    Cho DSLK đôi L lưu trữ các số nguyên có cấu trúc được khai báo như sau.

    struct node
    {
    int data;
    node *pnext, *prev;
    };

    struct List
    {
    node *phead, *ptail;
    };

    Giả sử L rỗng hoặc chứa đấy các số nguyên theo thứ tự tăng dần. Viết 1 hàm chèn 1 node p vào danh sách L sao cho danh sách có thứ tự tăng dần.

  2. #2
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Chỉ vỏn vẹn đi từ đầu, phăng theo cho đên khi gặp nút lớn hơn nút cần nhét thì nhét vào. Khôg gặp thì nhét vào cuối.

    Bí ở chỗ nào?

  3. #3
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    ps: Mình chưa test nên có gì bạn xem lại nhé

    C++ Code:
    1. if (head == NULL)
    2. {
    3.     head = tail = tmp; // tmp: node can insert
    4.     return;
    5. }
    6. else if (head->data > value) // value: gia tri can insert
    7. {
    8.     insertFirst (tmp);
    9.     return;
    10. }
    11. else if (tail->data < value)
    12. {
    13.     insertLast (tmp);
    14.     return;
    15. }
    16. else
    17. {
    18.     node ptrF = head;
    19.     node ptrL = tprF->next;
    20.     if (ptrL == NULL)
    21.     {
    22.         insertLast (tmp);
    23.         return;
    24.     }
    25.     while (ptrL->data < value)
    26.     {
    27.         ptrF = ptrL;
    28.         ptrL = ptrL->next;
    29.     }
    30.     ptrF->next = tmp;
    31.     tmp->next = ptrL;
    32.     tmp->prev = ptrF;
    33.     ptrL->prev = tmp;
    34.    
    35.     // minh se di chuyen sao cho value nam giua ptrF->data va ptrL->data
    36.     // ----> next cua ptrF thay doi, next cua tmp co dinh lai
    37.     // ----> prev cua tmp cung phai co dinh lai, prev cua ptrL thay doi nen ta sua lai
    38. }
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

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

  1. Đảo vị trí NODE trong DSLK đơn
    Gửi bởi GACN trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 15-12-2013, 05:12 PM
  2. xoá node cuối trong dslk đơn
    Gửi bởi sky93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 07-06-2012, 01:57 AM
  3. Hàm tạo node mới trong DSLK mình không hiểu lắm.
    Gửi bởi nguoirung1.6 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 04-12-2010, 10:56 PM
  4. HÌnh như code xóa 1 node dslk này bị sai
    Gửi bởi shumo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 02-06-2010, 06:13 PM
  5. DSLK! Chèn thêm pt sau node q
    Gửi bởi 7261819 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 22-06-2009, 03:17 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