Hiển thị kết quả từ 1 đến 4 / 4
  1. #1
    Tham gia
    18-03-2008
    Bài viết
    17
    Like
    0
    Thanked 0 Times in 0 Posts

    Rất hay ! xóa phần tử cuối của danh sách liên kết đơn

    em đang làm về phần xóa list, em đã làm được các phần nhưng còn phần xóa cuối em không biết viết hàm như thế nào mong anh chị chỉ giùm em thank.
    Quote Quote

  2. #2
    Tham gia
    17-07-2008
    Bài viết
    36
    Like
    0
    Thanked 0 Times in 0 Posts
    typedef struct NODE
    {
    int infor;
    struct NODE *pNext;
    }Node;

    typedef struct LIST
    {
    Node *pHead;
    Node *pTail;
    }List;

    void init(List &t)
    {
    t.pHead = NULL;
    t.pTail = NULL;
    }

    //ham xu ly xoa phan tu cuoi trong danh sach lien ket don
    bool xoa_cuoi(List &l)
    {
    if(l.pTail == NULL) // danh sach rong
    return false;
    Node *temp = new Node;
    Node *flag = new Node;
    temp = l.pHead;

    while(temp->pNext != NULL)
    {
    flag = temp;
    temp = temp ->pNext;
    }
    delete[] temp;
    pTail = flag;
    }

  3. #3
    Tham gia
    18-11-2007
    Bài viết
    11
    Like
    0
    Thanked 0 Times in 0 Posts
    void DeleteTail(List *l)
    {
    Node *p, *q;
    p = l->Head;
    while(p != l->Tail)
    {
    q = p;
    p = p->Next;
    }
    if(p == l->Head)
    DeleteHead(l);
    else
    {
    l->Tail = q;
    q->Next = NULL;
    delete p;
    }
    }

  4. #4
    Tham gia
    26-08-2007
    Bài viết
    87
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn chỉ cần làm theo ý tưởng : lần tới cuối ,dùng một biến nữa lưu trữ node kế cuối rồi gán node kế cuối -> tiếp = NULL , sau đó bạn del node cuối đi la xong.
    Chúc bạn thành công

Bookmarks

Quy định

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