Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4.2 - Trần Minh Thái (2016)
Số trang: 27
Loại file: pptx
Dung lượng: 158.15 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 4: Danh sách liên kết" sẽ giúp sinh viên trình bày, hiểu và vận dụng vào lập trình một số kỹ thuật sau để xử lý trên DSLK đơn gồm: Chèn thêm một node, xoá một node, sắp xếp. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4.2 - Trần Minh Thái (2016) Chương 4. Danh sách liên kết – Phần 2TrầnMinhTháiEmail:minhthai@huflit.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: ngày 30 tháng 10 năm 2016Nội dungSinh viên sẽ được trình bày, hiểu và vận dụng vàolập trình một số kỹ thuật sau để xử lý trên DSLKđơn:1. Chèn thêm một node2. Xoá một node3. Sắp xếp 2 Chèn node vào DSLK đơn • Chèn vào sau node p • Chèn vào trước node p 25 p pNewlist 3 pHead pTail Chèn node vào sau node p p pNewlist 4 pHead pTailChèn node vào sau node p• Input: DSLK list, node p và node cần thêm pNew• Output: list sau khi thêm pNew vào sau p• Algorithm: • B1: Nếu p là pTail của list thì Thêm pNew vào cuối list: Kết thúc • B2: pSau = p.pNext Nối pNew vào pSau Nối p vào pNew 5?Cài đặt phương thức thêm pNew vào sau p public void InsertAfterP(Node p, Node pNew) { } 6 Chèn node vào trước node p – Cách 1 pPrev p pNewlist 7 pHead pTailTìm node trước node p• Input: DSLK list, node p• Output: node phía trước node p: pTruoc (nếu không có node trước p thì trả về null)• Algorithm: • B1: Nếu p là pHead của list thì Trả về null: Kết thúc • B2: pTruoc = pHead của list • B3: Trong khi node sau của pTruoc khác p thực hiện pTruoc = node sau của pTruoc 8? Cài đặt phương thức tìm node trước node ppublic Node PrevNodeP (Node p){} 9Chèn node pNew vào trước node p• Input: DSLK list, node p, node cần thêm pNew• Output: list sau khi thêm pNew vào trước node p (trả về true nếu chèn thành công, ngược lại trả về false)• Algorithm: • B1: Nếu p là pHead của list thì Thêm pNew vào đầu list trả về true: Kết thúc • B2: pTruoc = Tìm node trước p • B3: Nếu pTruoc = null trả về false: Kết thúc 10 • B4: pTruoc nối với pNew? Cài đặt phương thức thêm pNew vào trước node p – Cách 1public bool InsertBeforeP1 (Node p, NodepNew){} 11 Chèn node vào trước node p – Cách 2 Bước1.ChènpNewvàosaup Bước2.HoánvịgiátrịpNewvàp p pNewlist 12 pHead pTail?Cài đặt phương thức thêm pNew vào trước node p – Cách 2public bool InsertBeforeP2 (Node p, NodepNew){} 13Xóa một node trong danh sách• TH1: Xóa node đầu của danh sách Ảnh hưởng pHead• TH2: Xóa node cuối của danh sách Ảnh hưởng pTail• TH còn lại: Xoá node bên trong danh sách 14 Xóa một nút trong danh sách • TH1: Xóa nút đầu của danh sách Cần xóalist 30 25 41 78 pHead pTail pDel 15Xoá node đầu của DSLK• Input: DSLK list• Output: list sau khi xoá node đầu• Algorithm: • B1: Nếu list có pHead = pTail thì pHead = pTail = null: Kết thúc • B2: Cập nhật pHead là node sau của pHead 16?Cài đặt phương thức xoá node đầu DSLKpublic void DeleteHead (){} 17 Xóa một node trong danh sách • TH 2: Xóa node cuối của danh sách Cần xóa pPrev pDellist 30 25 41 78 pHead pTail 18Xoá node cuối trong danh sách• Input: DSLK list• Output: list sau khi xoá node cuối• Algorithm: • B1: Nếu list có pHead = pTail thì pHead = pTail = null: Kết thúc • B2: pTruoc = node trước pTail của list pTail = null pTail = pTruoc 19?Cài đặt phương thức xoá node cuối DSLKpublic void DeleteTail (){} 20 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 4.2 - Trần Minh Thái (2016) Chương 4. Danh sách liên kết – Phần 2TrầnMinhTháiEmail:minhthai@huflit.edu.vnWebsite:www.minhthai.edu.vn Cập nhật: ngày 30 tháng 10 năm 2016Nội dungSinh viên sẽ được trình bày, hiểu và vận dụng vàolập trình một số kỹ thuật sau để xử lý trên DSLKđơn:1. Chèn thêm một node2. Xoá một node3. Sắp xếp 2 Chèn node vào DSLK đơn • Chèn vào sau node p • Chèn vào trước node p 25 p pNewlist 3 pHead pTail Chèn node vào sau node p p pNewlist 4 pHead pTailChèn node vào sau node p• Input: DSLK list, node p và node cần thêm pNew• Output: list sau khi thêm pNew vào sau p• Algorithm: • B1: Nếu p là pTail của list thì Thêm pNew vào cuối list: Kết thúc • B2: pSau = p.pNext Nối pNew vào pSau Nối p vào pNew 5?Cài đặt phương thức thêm pNew vào sau p public void InsertAfterP(Node p, Node pNew) { } 6 Chèn node vào trước node p – Cách 1 pPrev p pNewlist 7 pHead pTailTìm node trước node p• Input: DSLK list, node p• Output: node phía trước node p: pTruoc (nếu không có node trước p thì trả về null)• Algorithm: • B1: Nếu p là pHead của list thì Trả về null: Kết thúc • B2: pTruoc = pHead của list • B3: Trong khi node sau của pTruoc khác p thực hiện pTruoc = node sau của pTruoc 8? Cài đặt phương thức tìm node trước node ppublic Node PrevNodeP (Node p){} 9Chèn node pNew vào trước node p• Input: DSLK list, node p, node cần thêm pNew• Output: list sau khi thêm pNew vào trước node p (trả về true nếu chèn thành công, ngược lại trả về false)• Algorithm: • B1: Nếu p là pHead của list thì Thêm pNew vào đầu list trả về true: Kết thúc • B2: pTruoc = Tìm node trước p • B3: Nếu pTruoc = null trả về false: Kết thúc 10 • B4: pTruoc nối với pNew? Cài đặt phương thức thêm pNew vào trước node p – Cách 1public bool InsertBeforeP1 (Node p, NodepNew){} 11 Chèn node vào trước node p – Cách 2 Bước1.ChènpNewvàosaup Bước2.HoánvịgiátrịpNewvàp p pNewlist 12 pHead pTail?Cài đặt phương thức thêm pNew vào trước node p – Cách 2public bool InsertBeforeP2 (Node p, NodepNew){} 13Xóa một node trong danh sách• TH1: Xóa node đầu của danh sách Ảnh hưởng pHead• TH2: Xóa node cuối của danh sách Ảnh hưởng pTail• TH còn lại: Xoá node bên trong danh sách 14 Xóa một nút trong danh sách • TH1: Xóa nút đầu của danh sách Cần xóalist 30 25 41 78 pHead pTail pDel 15Xoá node đầu của DSLK• Input: DSLK list• Output: list sau khi xoá node đầu• Algorithm: • B1: Nếu list có pHead = pTail thì pHead = pTail = null: Kết thúc • B2: Cập nhật pHead là node sau của pHead 16?Cài đặt phương thức xoá node đầu DSLKpublic void DeleteHead (){} 17 Xóa một node trong danh sách • TH 2: Xóa node cuối của danh sách Cần xóa pPrev pDellist 30 25 41 78 pHead pTail 18Xoá node cuối trong danh sách• Input: DSLK list• Output: list sau khi xoá node cuối• Algorithm: • B1: Nếu list có pHead = pTail thì pHead = pTail = null: Kết thúc • B2: pTruoc = node trước pTail của list pTail = null pTail = pTruoc 19?Cài đặt phương thức xoá node cuối DSLKpublic void DeleteTail (){} 20 ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Danh sách liên kết Chèn thêm một node Xoá một nodeTài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 329 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 174 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 169 0 0 -
3 trang 164 3 0
-
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 159 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 159 0 0 -
57 trang 144 1 0
-
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 141 0 0 -
10 trang 141 0 0