
CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++
lượt xem 97
download

CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ thêm, sửa, xóa các phân tử trong danh sách liên kết đơn
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++
- CÁC THAO TÁC TRÊN DANH SÁCH LIÊN KẾT ĐƠN C++ - Cài đặt: void XoaDau(LIST &l) { if(l.pHead!=NULL) { NODE *pXoa=l.pHead; l.pHead=l.pHead->pNext; delete pXoa; if(l.pHead==NULL)//Trường hợp danh sách có 1 phần tử l.pTail=NULL; } } 6.2. Xóa phần tử cuối (SV tự vẽ hình minh họa) ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... - Đầu vào: DSLK đơn l - Kết quả: DSLK đơn l sau khi xóa phần tử cuối - Giải thuật:
- *Trường hợp 1: Nếu l rỗng thì kết thúc *Trường hợp 2: Nếu danh sách có một phần tử thì xóa đầu Ngược lại: B1: pTruoc là con trỏ đứng trước con trỏ cuối của danh sách B2: Cho pTruoc trỏ kế tiếp tới NULL B3: Xóa con trỏ cuối B4: Gán con trỏ cuối là pTruoc - Cài đặt: void XoaCuoi(LIST &l) { if(l.pHead!=NULL) { if(l.pHead==l.pTail) XoaDau(l); else { NODE *pTruoc=TimNodeTruocp(l, l.pTail); pTruoc->pNext=NULL; delete l.pTail; l.pTail=pTruoc; } } } 6.3. Xóa phần tử p cho trước (SV tự vẽ hình minh họa) ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................
- ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... - Đầu vào: DSLK đơn l, node p cần xóa - Kết quả: DSLK đơn l sau khi xóa p - Giải thuật: *Trường hợp 1: Nếu p là con trỏ đầu thì xóa đầu *Trường hợp 2: Nếu p là con trỏ cuối thì xóa cuối Ngược lại: B1: pTruoc là con trỏ đứng trước p pSau là con trỏ đứng sau p B2: Xóa p B3: Cho pTruoc trỏ vào pSau - Cài đặt: void Xoap(LIST &l, NODE *p) { if(p==l.pHead) XoaDau(l); else if(p==l.pTail) XoaCuoi(l); else { NODE *pTruoc=TimNodeTruocp(l, p); NODE *pSau = p->pNext; delete p; pTruoc->pNext = pSau; } } 6.4. Xóa phần tử đứng trước phần tử cho trước (SV tự vẽ hình minh họa) ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................
- ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ..................................................................................................................... ...................... - Đầu vào: DSLK đơn l, node p để xác định node cần xóa - Kết quả: DSLK đơn l sau khi xóa trước phần tử p - Giải thuật: *Trường hợp 1: Nếu p là con trỏ đầu thì kết thúc *Trường hợp 2: (p khác con trỏ đầu) B1: pTruoc là con trỏ đứng trước p B2: Xóa pTruoc - Cài đặt: void XoaTruocp(LIST &l, NODE *p) { if(p!=l.pHead) { Trang NODE *pTruoc=TimNodeTruocp(l, p); Xoap(pTruoc); } } 6.5. Xóa phần tử đứng sau phần tử cho trước (SV tự vẽ hình minh họa) ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ...........................................................................................................................................
- ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... - Đầu vào: DSLK đơn l, node p để xác định node cần xóa - Kết quả: DSLK đơn l sau khi xóa phần tử sau p - Giải thuật: *Trường hợp 1: Nếu p là con trỏ cuối thì kết thúc *Trường hợp 2: (p khác con trỏ cuối) B1: pSau là con trỏ đứng sau p B2: Xóa pSau - Cài đặt: void XoaSaup(LIST &l, NODE *p) { if(p!=l.pTail) { NODE *pSau=p->pNext; Xoap(pSau); } } 6.6.Hủy toàn bộ danh sách (SV tự vẽ hình minh họa) ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... ........................................................................................................................................... - Đầu vào: DSLK đơn l - Kết quả: DSLK đơn l sau khi hủy (rỗng)
- - Giải thuật: Trong khi con trỏ đầu khác NULL thì xóa đầu - Cài đặt: void Huy(LIST &l) { while(l.pHead) XoaDau(l); }

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Microsoft Excel: Hệ xử lý bằng bảng tính Microsoft Excel - ĐH Sư phạm Huế
102 p |
124 |
21
-
Bài giảng Tin học ứng dụng - Hệ xử lý bảng tính Microsoft excel
102 p |
125 |
17
-
Tài liệu hướng dẫn thực hành môn Cấu trúc dữ liệu và giải thuật - Bài 2: Danh sách liên kết
5 p |
189 |
12
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
20 p |
67 |
9
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 2: Các cấu trúc dữ liệu cơ bản
76 p |
85 |
8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu cơ bản - ĐH KHTN TPHCM
38 p |
81 |
7
-
Bài giảng Cấu trúc dữ liệu và giải thuật 1: Chương 5
20 p |
46 |
7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3.1 - Trần Minh Thái
66 p |
83 |
6
-
Bài giảng Cấu trúc dữ liệu: Chương 3 - ThS. Võ Quang Hoàng Khang
68 p |
53 |
5
-
Bài giảng môn Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu cơ bản
75 p |
13 |
5
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - Nguyễn Minh Huy
19 p |
16 |
3
-
Bài giảng Cấu trúc dữ liệu & giải thuật: Các cấu trúc dữ liệu cơ bản
39 p |
33 |
3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Đỗ Ngọc Như Loan
84 p |
53 |
3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4 – Trần Minh Thái (2017)
72 p |
68 |
3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4.1 - Trần Minh Thái (2016)
57 p |
66 |
3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Danh sách - Nguyễn Đức Cương
23 p |
96 |
3
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p |
16 |
0


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
