Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - ThS. Phạm Thanh An
Số trang: 72
Loại file: ppt
Dung lượng: 2.36 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 8 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 3 - Danh sách. Nội dung trình bày trong chương này gồm: Danh sách và các phép toán trên danh sách, danh sách đặc, danh sách liên kết, danh sách liên kết kép. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
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 3 - ThS. Phạm Thanh An Chương3 DANHSÁCHThs.PhạmThanhAnBộmônKhoahọcmáytínhKhoaCNTTTrườngĐạihọcNgânhàngTP.HCM LOGO Nộidungtrìnhbày Danhsáchvàcácphéptoántrêndanhsách Danhsáchđặc Định nghĩa, Cách biểu diễn và các phép toán Ưu và nhược điểm của danh sách đặc Tổ chức Stack và Queue theo kiểu danh sách đặc Danhsáchliênkết Khái niệm , Biểu diễn, Các phép toán Ưu và nhược điểm Tổ chức Stack và Queue theo kiểu danh sách liên kết Danhsáchliênkếtkép Danhsách Địnhnghĩadanhsách Danh sách là dãy hữu hạn có thứ tự bao gồm một số biến động các phần tử thuộc cùng một lớp đối tượng nào đó. Mô tả danh sách : L = (a1, a2, . . . ,an) Danh sách tuyến tính: là danh sách mà quan hệ lân cận giữa các phần tử được hiển thị Lưutrữdanhsách Tổchứclưutrữdanhsáchtrongbộnhớ Sử dụng mảng - Danh sách đặc Đối tượng lớp - danh sách liên kết • Mỗi node là một đối tượng lớp Cácphéptoántrêndanhsách Thêm Loạibỏ Sắpxếp: Tìmkiếm Tách Ghép Duyệt: Danhsáchđặc(condensedlist) Địnhnghĩa Là danh sách có các phần tử được xếp kế tiếp nhau trong bộ nhớ a1 a2 a3 …….… an1 an Đặcđiểm d: chiều dài mỗi phần tử trong danh sách l0: địa chỉ của phần tử đầu tiên địa chỉ của phần tử thứ i là: li=l0+(i-1)d Danhsáchđặc (condensedlist) Ưuđiểm Nhượcđiểm Mảngdanhsáchđặcphổbiến Mảngmộtchiềua[] Hình ảnh một biến Hìnhảnhmảng Khaibáo: Cách 1: [] tên_mảng; Tên_mảng = new [size]; Ví dụ: • int[] myIntArray; myIntArray = new int[5]; • int[] numbers; numbers = new int[] {0,1,2,3,4}; Mảng2chiều Mảnghaichiềua[,] Khai báo mảng 2 chiều: int[,] grades = new int[2,3]; // 2 hàng, 3 cột 0 1 4 1 2 5 Truy cập phần tử của mảng [dòng, cột] Khởitạomảng2chiềuint[,]grades=newint[,]{{1,82,74,89,100}, {2,93,96,85,86}, {3,83,72,95,89}, {4,91,98,79,88}} VídụcàiđặtdanhsáchclassCArray{ privateint[]arr; privateintupper; privateintnumElements; publicCArray(intsize){ arr = new int[size]; upper = size-1; numElements = 0; } MảngdanhsáchđặcphổbiếnpublicvoidInsert(intitem){ arr[numElements]=item; numElements++; }publicvoidDisplayElements(){ for(inti=0;i MảngdanhsáchđặcphổbiếnstaticvoidMain(){ CArraynums=newCArray(); for(inti=0;i MảngdanhsáchđặcphổbiếnstaticvoidMain(){ CArraynums=newCArray(); Randomrnd=newRandom(100); for(inti=0;i Càiđặtdanhsáchbằngmảng Thêmmộtphầntửvàomảng 10 5 13 11 5 8 13 ? 18 10 5 13 11 5 8 13 10 5 18 13 11 5 8 13 Càiđặtdanhsáchbằngmảng Xóaphầntửrakhỏimảng 10 5 18 13 11 5 8 ? 10 5 13 11 5 8 ? 10 5 13 11 5 8 ? ? Càiđặtdanhsáchbằngmảng Tìmkiếmphầntửtrongmảng 13 10 5 13 11 5 8 ? ? 13 10 5 13 11 5 8 ? ? 13 10 5 13 11 5 8 ? ? Bàitập Nhập một dãy số nguyên từ bàn phím, và sắp xếp chúng theo thứ tự tăng dầnInput: 5 2 4 18 9 1Output: 1 2 4 5 9 18 Nhập một dãy số nguyên từ bàn phím, và cho biết số lần xuất hiện của từng số trong dãy sốInput: 1 3 2 9 4 3 2 9 8 1 1 3 2 9 1Ouput: (1,4) (2,3) (3,3) (4,1) (8,1) (9,3) TổchứcStack theokiểudanhsáchđặc PopPush Top TổchứcStack theokiểudanhsáchđặc CấutrúccủaSTACK Dùng 1 mảng (StkArray) để chứa các phần tử Dùng 1 số nguyên (StkMax) để lưu số phần tử tối đa trong Stack Dùng 1 số nguyên (StkTop) để lưu chỉ số đỉnh của STACK ...
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 3 - ThS. Phạm Thanh An Chương3 DANHSÁCHThs.PhạmThanhAnBộmônKhoahọcmáytínhKhoaCNTTTrườngĐạihọcNgânhàngTP.HCM LOGO Nộidungtrìnhbày Danhsáchvàcácphéptoántrêndanhsách Danhsáchđặc Định nghĩa, Cách biểu diễn và các phép toán Ưu và nhược điểm của danh sách đặc Tổ chức Stack và Queue theo kiểu danh sách đặc Danhsáchliênkết Khái niệm , Biểu diễn, Các phép toán Ưu và nhược điểm Tổ chức Stack và Queue theo kiểu danh sách liên kết Danhsáchliênkếtkép Danhsách Địnhnghĩadanhsách Danh sách là dãy hữu hạn có thứ tự bao gồm một số biến động các phần tử thuộc cùng một lớp đối tượng nào đó. Mô tả danh sách : L = (a1, a2, . . . ,an) Danh sách tuyến tính: là danh sách mà quan hệ lân cận giữa các phần tử được hiển thị Lưutrữdanhsách Tổchứclưutrữdanhsáchtrongbộnhớ Sử dụng mảng - Danh sách đặc Đối tượng lớp - danh sách liên kết • Mỗi node là một đối tượng lớp Cácphéptoántrêndanhsách Thêm Loạibỏ Sắpxếp: Tìmkiếm Tách Ghép Duyệt: Danhsáchđặc(condensedlist) Địnhnghĩa Là danh sách có các phần tử được xếp kế tiếp nhau trong bộ nhớ a1 a2 a3 …….… an1 an Đặcđiểm d: chiều dài mỗi phần tử trong danh sách l0: địa chỉ của phần tử đầu tiên địa chỉ của phần tử thứ i là: li=l0+(i-1)d Danhsáchđặc (condensedlist) Ưuđiểm Nhượcđiểm Mảngdanhsáchđặcphổbiến Mảngmộtchiềua[] Hình ảnh một biến Hìnhảnhmảng Khaibáo: Cách 1: [] tên_mảng; Tên_mảng = new [size]; Ví dụ: • int[] myIntArray; myIntArray = new int[5]; • int[] numbers; numbers = new int[] {0,1,2,3,4}; Mảng2chiều Mảnghaichiềua[,] Khai báo mảng 2 chiều: int[,] grades = new int[2,3]; // 2 hàng, 3 cột 0 1 4 1 2 5 Truy cập phần tử của mảng [dòng, cột] Khởitạomảng2chiềuint[,]grades=newint[,]{{1,82,74,89,100}, {2,93,96,85,86}, {3,83,72,95,89}, {4,91,98,79,88}} VídụcàiđặtdanhsáchclassCArray{ privateint[]arr; privateintupper; privateintnumElements; publicCArray(intsize){ arr = new int[size]; upper = size-1; numElements = 0; } MảngdanhsáchđặcphổbiếnpublicvoidInsert(intitem){ arr[numElements]=item; numElements++; }publicvoidDisplayElements(){ for(inti=0;i MảngdanhsáchđặcphổbiếnstaticvoidMain(){ CArraynums=newCArray(); for(inti=0;i MảngdanhsáchđặcphổbiếnstaticvoidMain(){ CArraynums=newCArray(); Randomrnd=newRandom(100); for(inti=0;i Càiđặtdanhsáchbằngmảng Thêmmộtphầntửvàomảng 10 5 13 11 5 8 13 ? 18 10 5 13 11 5 8 13 10 5 18 13 11 5 8 13 Càiđặtdanhsáchbằngmảng Xóaphầntửrakhỏimảng 10 5 18 13 11 5 8 ? 10 5 13 11 5 8 ? 10 5 13 11 5 8 ? ? Càiđặtdanhsáchbằngmảng Tìmkiếmphầntửtrongmảng 13 10 5 13 11 5 8 ? ? 13 10 5 13 11 5 8 ? ? 13 10 5 13 11 5 8 ? ? Bàitập Nhập một dãy số nguyên từ bàn phím, và sắp xếp chúng theo thứ tự tăng dầnInput: 5 2 4 18 9 1Output: 1 2 4 5 9 18 Nhập một dãy số nguyên từ bàn phím, và cho biết số lần xuất hiện của từng số trong dãy sốInput: 1 3 2 9 4 3 2 9 8 1 1 3 2 9 1Ouput: (1,4) (2,3) (3,3) (4,1) (8,1) (9,3) TổchứcStack theokiểudanhsáchđặc PopPush Top TổchứcStack theokiểudanhsáchđặc CấutrúccủaSTACK Dùng 1 mảng (StkArray) để chứa các phần tử Dùng 1 số nguyên (StkMax) để lưu số phần tử tối đa trong Stack Dùng 1 số nguyên (StkTop) để lưu chỉ số đỉnh của STACK ...
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu và giải thuật Danh sách liên kết Danh sách liên kết kép Danh sách đặc Phép toán trên danh sáchGợi ý tà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 304 0 0 -
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 156 0 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 148 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 142 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 139 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 137 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 trang 108 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 103 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 71 0 0 -
49 trang 67 0 0