Khái quát về cấu trúc dữ liệu phần 4
Số trang: 8
Loại file: pdf
Dung lượng: 211.27 KB
Lượt xem: 23
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Sử dụng rất linh hoạt, cấp phát bộ nhớ khi cần và xóa khi không cần — Bổ sung và xóa bỏ một dữ liệu ₫ược thực hiện thông qua chuyển con trỏ, thời gian thực hiện là hằng ngày.
Nội dung trích xuất từ tài liệu:
Khái quát về cấu trúc dữ liệu phần 4 Bổ sung dữ liệu pHead pHead pHead Dữ liệu T Dữ liệu A Dữ liệu B Dữ liệu A Dữ liệu T Dữ liệu B Dữ liệu C Dữ liệu C Dữ liệu X© 2004, HOÀNG MINH SƠN Dữ liệu X 0x00 Dữ liệu Y 0x00 Dữ liệu Y Bổ sung vào giữa danh sách Bổ sung vào ₫ầu danh sách 25 Chương 4: Khái quát về cấu trúc dữ liệu Xóa bớt dữ liệu pHead pHead Dữ liệu A Dữ liệu A Dữ liệu B Dữ liệu B Dữ liệu C Dữ liệu C Dữ liệu X Dữ liệu X© 2004, HOÀNG MINH SƠN 0x00 Dữ liệu Y 0x00 Dữ liệu Y Xóa dữ liệu ₫ầu danh sách Xóa dữ liệu giữa danh sách 26 Chương 4: Khái quát về cấu trúc dữ liệu Các ₫ặc ₫iểm chính Ưu ₫iểm: — Sử dụng rất linh hoạt, cấp phát bộ nhớ khi cần và xóa khi không cần — Bổ sung và xóa bỏ một dữ liệu ₫ược thực hiện thông qua chuyển con trỏ, thời gian thực hiện là hằng số, không phụ thuộc vào chiều dài và vị trí — Có thể truy nhập và duyệt các phần tử theo kiểu tuần tự Nhược ₫iểm: — Mỗi dữ liệu bổ sung mới ₫ều phải ₫ược cấp phát bộ nhớ ₫ộng — Mỗi dữ liệu xóa bỏ ₫i ₫ều phải ₫ược giải phóng bộ nhớ tương© 2004, HOÀNG MINH SƠN ứng — Nếu kiểu dữ liệu không lớn thì phần overhead chiếm tỉ lệ lớn — Tìm kiếm dữ liệu theo kiểu tuyến tính, mất thời gian 27 Chương 4: Khái quát về cấu trúc dữ liệu Ví dụ: Danh sách thông báo (hộp thư) #include using namespace std; struct MessageItem { string subject; string content; MessageItem* pNext; }; struct MessageList { MessageItem* pHead; }; void initMessageList(MessageList& l); void addMessage(MessageList&, const string& sj,© 2004, HOÀNG MINH SƠN const string& ct); bool removeMessageBySubject(MessageList& l, const string& sj); void removeAllMessages(MessageList&); 28 Chương 4: Khái quát về cấu trúc dữ liệu #include List.h void initMessageList(MessageList& l) { l.pHead = 0; } void addMessage(MessageList& l, const string& sj, const string& ct) { MessageItem* pItem = new MessageItem; pItem->content = ct; pItem->subject = sj; pItem->pNext = l.pHead; l.pHead = pItem; } void removeAllMessages(MessageList& l) { MessageItem *pItem = l.pHead; while (pItem != 0) { MessageItem* pItemNext = pItem->pNext;© 2004, HOÀNG MINH SƠN delete pItem; pItem = pItemNext; } l.pHead = 0; } 29 Chương 4: Khái quát về cấu trúc dữ liệu bool removeMessageBySubject(MessageList& l, const string& sj) { MessageItem* pItem = l.pHead; MessageItem* pItemBefore; while (pItem != 0 && pItem->subject != sj) { pItemBefore = pItem; ...
Nội dung trích xuất từ tài liệu:
Khái quát về cấu trúc dữ liệu phần 4 Bổ sung dữ liệu pHead pHead pHead Dữ liệu T Dữ liệu A Dữ liệu B Dữ liệu A Dữ liệu T Dữ liệu B Dữ liệu C Dữ liệu C Dữ liệu X© 2004, HOÀNG MINH SƠN Dữ liệu X 0x00 Dữ liệu Y 0x00 Dữ liệu Y Bổ sung vào giữa danh sách Bổ sung vào ₫ầu danh sách 25 Chương 4: Khái quát về cấu trúc dữ liệu Xóa bớt dữ liệu pHead pHead Dữ liệu A Dữ liệu A Dữ liệu B Dữ liệu B Dữ liệu C Dữ liệu C Dữ liệu X Dữ liệu X© 2004, HOÀNG MINH SƠN 0x00 Dữ liệu Y 0x00 Dữ liệu Y Xóa dữ liệu ₫ầu danh sách Xóa dữ liệu giữa danh sách 26 Chương 4: Khái quát về cấu trúc dữ liệu Các ₫ặc ₫iểm chính Ưu ₫iểm: — Sử dụng rất linh hoạt, cấp phát bộ nhớ khi cần và xóa khi không cần — Bổ sung và xóa bỏ một dữ liệu ₫ược thực hiện thông qua chuyển con trỏ, thời gian thực hiện là hằng số, không phụ thuộc vào chiều dài và vị trí — Có thể truy nhập và duyệt các phần tử theo kiểu tuần tự Nhược ₫iểm: — Mỗi dữ liệu bổ sung mới ₫ều phải ₫ược cấp phát bộ nhớ ₫ộng — Mỗi dữ liệu xóa bỏ ₫i ₫ều phải ₫ược giải phóng bộ nhớ tương© 2004, HOÀNG MINH SƠN ứng — Nếu kiểu dữ liệu không lớn thì phần overhead chiếm tỉ lệ lớn — Tìm kiếm dữ liệu theo kiểu tuyến tính, mất thời gian 27 Chương 4: Khái quát về cấu trúc dữ liệu Ví dụ: Danh sách thông báo (hộp thư) #include using namespace std; struct MessageItem { string subject; string content; MessageItem* pNext; }; struct MessageList { MessageItem* pHead; }; void initMessageList(MessageList& l); void addMessage(MessageList&, const string& sj,© 2004, HOÀNG MINH SƠN const string& ct); bool removeMessageBySubject(MessageList& l, const string& sj); void removeAllMessages(MessageList&); 28 Chương 4: Khái quát về cấu trúc dữ liệu #include List.h void initMessageList(MessageList& l) { l.pHead = 0; } void addMessage(MessageList& l, const string& sj, const string& ct) { MessageItem* pItem = new MessageItem; pItem->content = ct; pItem->subject = sj; pItem->pNext = l.pHead; l.pHead = pItem; } void removeAllMessages(MessageList& l) { MessageItem *pItem = l.pHead; while (pItem != 0) { MessageItem* pItemNext = pItem->pNext;© 2004, HOÀNG MINH SƠN delete pItem; pItem = pItemNext; } l.pHead = 0; } 29 Chương 4: Khái quát về cấu trúc dữ liệu bool removeMessageBySubject(MessageList& l, const string& sj) { MessageItem* pItem = l.pHead; MessageItem* pItemBefore; while (pItem != 0 && pItem->subject != sj) { pItemBefore = pItem; ...
Tìm kiếm theo từ khóa liên quan:
quản trị dữ liệu hướng dẫn học cơ sở dữ liệu tài liệu cơ sở dữ liệu hướng dẫn quản lý dữ liệu kỹ năng quản trị dữ liệuGợi ý tài liệu liên quan:
-
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 311 1 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 285 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 281 2 0 -
6 trang 170 0 0
-
Hướng dẫn tạo file ghost và bung ghost
12 trang 152 0 0 -
Giáo trình cơ sở dữ liệu quan hệ_3
26 trang 106 0 0 -
Hướng dẫn sử dụng Mapinfo Professional-Phần cơ bản
57 trang 84 0 0 -
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 trang 68 0 0 -
150 trang 68 0 0
-
Cách sao lưu và phục hồi dữ liệu bằng Norton Ghost
8 trang 58 0 0