CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - DANH SÁCH LIÊN KẾT ĐƠN (LIST)
lượt xem 47
download
Tham khảo bài thuyết trình 'cấu trúc dữ liệu và giải thuật - danh sách liên kết đơn (list)', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - DANH SÁCH LIÊN KẾT ĐƠN (LIST)
- NỘMaster Click To Edit I DUNGTitle Style DANH SÁCH LIÊN KẾT ĐƠN (LIST) Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1
- Click Tổ Chức CTo ủa Edit DSLKMaster Đơn Title Style x2 x0 x3 x1 Mỗi phần tử liên kết với phần tử đứng liền sau trong danh sách Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Mỗi phần tử trong danh sách liên kết đơn là một cấu trúc có hai thành phần Thành phần dữ liệu: Lưu trữ thông tin về bản thân phần tử Thành phần liên kết: Lưu địa chỉ phần tử đứng sau trong danh sách hoặc bằng NULL nếu là phần tử cuối danh sách.
- ClickCTDL củMaster To Edit đơnStyle a DSLKTitle Cấu trúc dữ liệu của 1 nút trong List đơn typedef struct tagNode { Data Info; // Lưu thông tin bản thân struct tagNode *pNext; //Lưu địa chỉ của Node đứng sau }Node; Cấu trúc dữ liệu của DSLK đơn pNex Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 typedef struct tagList Info t { Node *pHead;//Lưu địa chỉ Node đầu tiên trong List Node *pTail; //Lưu địa chỉ của Node cuối cùng trong List }LIST; // kiểu danh sách liên kết đơn
- Ví dClick ụ tổ chTo ức Edit DSLKMaster Title đơn trong Style bộ nhớ pHead pTail 3f 4f 5f 4 4f 7 5f 6 NULL Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Trong ví dụ trên thành phần dữ liệu là 1 số nguyên
- CácClick TocEdit thao tác ơ bảnMaster Title trên DSLK đơnStyle Tạo 1 danh sách liên kết đơn rỗng Tạo 1 nút có trường Infor bằng x Tìm một phần tử có Info bằng x Thêm một phần tử có khóa x vào danh sách Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Hủy một phần tử trong danh sách Duyệt danh sách Sắp xếp danh sách liên kết đơn
- KhởClick To Edit i tạo danh sách Master liên kết Title Style Địa chỉ của nút đầu tiên, địa chỉ của nút cuối cùng đều không có void CreateList(List &l) { Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 l.pHead=NULL; l.pTail=NULL; }
- TạoClick 1 phầTo n tửEdit mới Master Title Style Hàm trả về địa chỉ phần tử mới tạo Node* CreateNode(Data x) { Node *p; p = new Node;//Cấp phát vùng nhớ cho phần tử if ( p==NULL) exit(1); Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 p ->Info = x; //gán dữa liệu cho nút p->pNext = NULL; return p; }
- Click Thêm 1 phTo ần tEdit ử vàoMaster DSLK Title Style Nguyên tắc thêm: Khi thêm 1 phần tử vào List thì có làm cho pHead, pTail thay đổi? Các vị trí cần thêm 1 phần tử vào List: Thêm vào đầu List đơn Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Thêm vào cuối List Thêm vào sau 1 phần tử q trong list
- ThuClick ật toánTo Edit thêm Master 1 ph Title ần tử vào đầuStyle DSLK Thêm nút p vào đầu danh sách liên kết đơn Bắt đầu: Nếu List rỗng thì + pHead = p; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 + pTail = pHead; Ngược lại + p->pNext = pHead; + pHead = p
- Click Hàm thêmTo 1 phEdit ần tửMaster vào đầuTitle List Style void AddHead(LIST &l, Node* p) { if (l.pHead==NULL) { l.pHead = p; l.pTail = l.pHead; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 } else { p->pNext = l.pHead; l.pHead = p; } }
- Click Minh ToậEdit họa thu t toánMaster thêm vàoTitle đầu Style pHead 4f 2f 3f 3 3f 4 4f 8… 9f Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 10 2f N pHead=P P->pNext=pHead P
- Thu ật To Click toán thêm Edit cuối Style vào Title Master DSLK Ta cần thêm nút p vào cuối list đơn Bắt đầu: Nếu List rỗng thì + pHead = p; + pTail = pHead; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Ngược lại + pTail->pNext=p; + pTail=p
- Click Hàm thêmTo 1 phEdit ần tửMaster vào cuốTitle Style i DSLKD void AddTail(LIST &l, Node *p) { if (l.pHead==NULL) { l.pHead = p; l.pTail = l.pHead; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 } else { l.pTail->Next = p; l.pTail = p; } }
- Click Minh ToậEdit họa thu t toánMaster thêm vàoTitle cuốiStyle pTail 3f 4f 5f 4 4f 8 5f 5 N 9f pTail=P Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 pTail->pNext 9f 6N P
- Click Thu Tothêm ật toán Edit Master phầ Title n tử q vào Style sau ph ần tử q Ta cần thêm nút p vào sau nút q trong list đơn Bắt đầu: Nếu (q!=NULL) thì B1: p->pNext = q->pNext Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 B2: + q->pNext = p + nếu q = pTail thì pTail=p
- Cài Click đặt thuTo Edit ật toán Master Title Style void InsertAfterQ(List &l, Node *p, Node *q) { if(q!=NULL) { p->pNext=Q->Next; q->pNext=p; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 if(l.pTail==q) l.Tail=q; } else AddHead(l,q);// thêm q vào đầu list }
- Click Minh họMaster To Edit a thuậtTitle toánStyle 3f 4f q 5f 4 4f 8 5f 9f 5 .. 9f q->pNext=P 7 N Cấu trúc dữ liệu và thuật giải 5f CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 P->pNext=q->pNext P
- HủyClick phần To EditDSLK tử trong Master đơnTitle Style Nguyên tắc: Phải cô lập phần tử cần hủy trước hủy. Các vị trị cần hủy Hủy phần tử đứng đầu List Hủy phần tử có khoá bằng x Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 Huỷ phần tử đứng sau q trong danh sách liên kết đơn Ở phần trên, các phần tử trong DSLK đơn được cấp phát vùng nhớ động bằng hàm new, thì sẽ được giải phóng vùng nhớ bằng hàm delete.
- ThuClick ật toánTo hủyEdit phầMaster n tử trongTitle DSLK Style Bắt đầu: Nếu (pHead!=NULL) thì B1: p=pHead B2: Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 + pHead = pHead->pNext + delete (p) B3: Nếu pHead==NULL thì pTail=NULL
- Cài Click đặt thuTo Edit ật toán Master Title Style Hủy được hàm trả về 1, ngược lại hàm trả về 0 int RemoveHead(List &l, int &x) { Node *p; if(l.pHead!=NULL) { p=l.pHead; x=p->Info; //lưu Data của nút cần hủy l.pHead=l.pHead->pNext; Cấu trúc dữ liệu và thuật giải CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT 1 delete p; if(l.pHead==NULL) l.pTail=NULL; return 1; } return 0; }
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Thị Kim Chi
180 p | 145 | 19
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 179 | 17
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 81 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Các khái niệm cơ bản về Cấu trúc dữ liệu và giải thuật
20 p | 47 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 173 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Một số khái niệm cơ bản về cấu trúc dữ liệu và giải thuật
12 p | 92 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Tổng quan - Nguyễn Đức Cương
6 p | 100 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Chương 1: Tổng quan về giải thuật và cấu trúc dữ liệu
10 p | 70 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 7 - Châu Thị Bảo Hà
133 p | 115 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Th.S Thiều Quang Trung
44 p | 93 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 107 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 1: Giới thiệu chung
40 p | 56 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Bài 1b - Hoàng Thị Điệp (2014)
29 p | 30 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Ths. Phạm Thanh An (2018)
67 p | 65 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Ngô Quang Thạch
49 p | 64 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 70 | 3
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