PDA

View Full Version : Xoá con trỏ



cybergirl
13-05-2004, 03:47
Xin cho hỏi giải thuật xoá 1 con trỏ trong danh sách liên kết L, với p là vị trí cần xoá, Header không chứa nội dung. Thanks

bete
13-05-2004, 07:56
Để xóa p, bạn có thể thử:

nếu q=p^next là hợp lệ (khác nil) {p 0 là cuối danh sách} thì
  chép ^q qua ^p (chép q^data và q^next)
  xóa q
ngược lại { p^next là nil => p là cuối danh sách} thì
  nếu (p là header^next) {p cũng là đầu danh sách (danh sách có đúng 1 phần tử) } thì
     xóa p
    gán nil vô header^next
  ngược lại {p 0 là header^next => p 0 là đầu danh sách (danh sách có hơn 1 phần tử) }
    cần tìm q thỏa q^next là p, xóa p và gán NIL vô q^next

===> xóa p^next thì dễ hơn là xóa p (nếu bạn đang xài danh sách đơn (0 có p^previous)) !

(Cám ơn Cotez nhiều về chiêu Alt-255 :))