Danh mục

CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - CHƯƠNG 4 DANH SÁCH TUYẾN TÍNH

Số trang: 29      Loại file: ppt      Dung lượng: 518.50 KB      Lượt xem: 20      Lượt tải: 0    
Thu Hiền

Hỗ trợ phí lưu trữ khi tải xuống: 11,000 VND Tải xuống file đầy đủ (29 trang) 0
Xem trước 0 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Danh sách là một tập các phần tử thuộc cùng một lớp đối tượng nào đóDãy số nguyên, danh sách sinh viên,...Giả sử L là một danh sách có n phần tửL = { a1, a2, ..., an }n gọi là độ dài của danh sách Ln0 thì a1 là phần tử đầu tiên, an là phần tử cuối cùngVới L, ta nói ai đứng trước ai+1 và đứng sau ai-1 (i=1...n).Danh sách mà các phần tử có thứ tự “trước-sau” gọi là “DSTT”...
Nội dung trích xuất từ tài liệu:
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - CHƯƠNG 4 DANH SÁCH TUYẾN TÍNH CHƯƠNG 4DANH SÁCH TUYẾN TÍNH MỤC TIÊU Khái niệm danh sách tuyến tính Các phép toán với danh sách Lưu trữ kế tiếp của danh sách tuyến tính Danh sách móc nối đơn Danh sách nối đôi Danh sách móc nối vòng Ngăn xếp Hàng đợi KHÁI NIỆM DSTT Danh sách là một tập các phần tử thuộc cùng một lớp đối tượng nào đó Dãy số nguyên, danh sách sinh viên,...  Giả sử L là một danh sách có n phần tử L = { a1, a2, ..., an } n gọi là độ dài của danh sách L  n>0 thì a1 là phần tử đầu tiên, an là phần tử cuối cùng  Với L, ta nói ai đứng trước ai+1 và đứng sau ai-1 (i=1...n).  Danh sách mà các phần tử có thứ tự “trước-sau” gọi là  “DSTT” CÁC PHÉP TOÁN TRÊN DSTT Khởi tạo danh sách rỗng (creat) Kiểm tra danh sách rỗng (empty) Kiểm tra danh sách đầy (full) Bổ sung một phần tử vào danh sách (add) Loại bỏ một phần tử khỏi danh sách (remove) Sắp xếp danh sách (sort) Tìm kiếm trên danh sách (search) ... LƯU TRỮ KẾ TIẾP CỦA DSTT DSTT được lưu trữ trong bộ nhớ bởi một mảng một chiều gọi là lưu trữ kế tiếp. Mỗi phần tử của mảng lưu trữ một phần tử của danh sách Ưu điểm Truy cập nhanh và đồng đều đối với mọi phần tử  Các thao tác được thực hiện khá đơn giản  Nhược điểm Do kích thước mảng cố định khi khai báo nên có thể dẫn đến  sự lãng phí hoặc thiếu bộ nhớ.BIỂU DIỄN CẤU TRÚC DỮ LIỆU Giả sử các phần tử của danh sách có kiểu dữ liệu là “Item” Độ dài của danh sách là một số nguyên dương N Danh sách được biểu diễn bởi một cấu trúc gồm hai thành phần Thành phần thứ nhất: biến “count” lưu chỉ số phần tử  mảng, lưu trữ phần tử cuối cùng của danh sách. Thành phần thứ hai: mảng một chiều “E” lưu các phần  tử của danh sách L, E[i-1] lưu ai LƯU TRỮ KẾ TIẾP CỦA DSTT Biểu diễn danh sách Danh sách cần lưu trữ: L = { a1, a2, ..., an } 0 1 … n-1 … Max-1 a1 a2 an … … Mảng E count = n-1 LƯU TRỮ KẾ TIẾP CỦA DSTT Cấu trúc dữ liệu được khai báo như sau #define Max N L.count = -1 -> ds L rỗng L.count = Max-1 -> ds L đầy struct Item { Các thành phần dữ liệu; }; struct List { int count; Item E[Max]; }; List L; //Khai báo ds L LƯU TRỮ KẾ TIẾP CỦA DSTT Ví dụ #define Max 7 struct List { struct Sinhvien { int count; char hoten[30]; Sinhvien E[Max]; char gioitinh[4]; }; int tuoi; List L; //Khai báo ds L }; LƯU TRỮ KẾ TIẾP CỦA DSTT Ví dụ 0 1 2 3 4 5 6 L.E S1 S2 S3 S4 S5 E L.count count = 4 Danh sách L chứa 5 sinh viênCÁC PHÉP TOÁN TRÊN DS KẾ TIẾP Khởi tạo danh sách rỗng  Kiểm tra danh sách rỗng  Kiểm tra danh sách đầy  Phép loại bỏ một phần tử khỏi danh sách  Bổ sung một phần tử vào danh sách  Thống kê danh sách  Tính toán trên danh sách  Tìm kiếm trên danh sách  Sắp xếp danh sách CÁC PHÉP TOÁN TRÊN DS KẾ TIẾP Khởi tạo danh sách rỗng  void creat(List &L) { L.count = -1; } Max = 7 0 1 2 3 4 5 6 Mảng E count = -1 Danh sách rỗngCÁC PHÉP TOÁN TRÊN DS KẾ TIẾP Kiểm tra danh sách rỗng  int empty(List L) { return (L.count == -1); } Hàm empty trả về giá trị 1 nếu danh sách rỗng, ngược lại trả về 0CÁC PHÉP TOÁN TRÊN DS KẾ TIẾP Kiểm tra danh sách đầy  int full(List L) { return (L.count == Max-1); } Max = 7 0 1 2 3 4 5 6 14 23 11 25 37 19 29 Mảng E count = 6 Danh sách đầy CÁC PHÉP TOÁN TRÊN DS KẾ T ...

Tài liệu được xem nhiều: