1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - ThS. Nguyễn Thị Khiêm Hòa (ĐH Ngân hàng TP.HCM)

32 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung cơ bản của chương 3 Danh sách nằm trong bài giảng cấu trúc dữ liệu và giải thuật nhằm trình bày về các nội dung chính: 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, từ đó giúp sinh viên hểu rõ về CTDL danh sách, phương pháp xây dựng lớp đối tượng danh sách đặc, danh sách liên kết và các kiểu dữ liệu đặc biệt trên C#.

Chương 3: Danh sách Giảng viên: Ths Nguyễn Thị Khiêm Hịa Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM Nội dung    Danh sách phép toán danh sách Danh sách đặc Danh sách liên kết Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mục tiêu  Hiểu rõ CTDL danh sách  Phương pháp xây dựng lớp đối tượng danh sách đặc, danh sách liên kết kiểu liệu đặc biệt C#  Đánh giá ưu khuyết điểm giải thuật loại danh sách để chọn kiểu liệu phù hợp Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Danh sách  Định nghĩa Danh sách dãy hữu hạn có thứ tự phần tử thuộc lớp đối tượng  Ký hiệu: L(a1, a2, …, an)  Danh sách tuyến tính danh sách mà quan hệ lân cận phần tử hiển thị Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Danh sách  Tổ chức lưu trữ danh sách nhớ  Mảng - Danh sách đặc  Danh sách liên kết – Danh sách động Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mảng  Tập hợp phần tử kiểu liệu, nằm liên tiếp nhớ  Có số  Giá trị mặc định phần tử mảng quy định theo kiểu đối tượng  Mảng đối tượng  Kích thước: nhiều chiều Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mảng chiều  Khai báo  Khởi tạo  Truy xuất: Chỉ mục đối tượng Tìm kiếm Sắp xếp Tính tốn Đếm  Các thuật tốn: • • • •  Kỹ thuật • Lính canh • Cờ hiệu Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Bài tập Thực   Xây dựng lớp mảng số nguyên, thực việc tính tổng, tổng chẳn, tổng lẻ … mảng Xây dựng lớp Zoo chứa động vật có lớp Animal 45 Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM Mảng đa chiều  Là mảng chiều mà phần tử mảng khác  Trên C# hỗ trợ hai kiểu mảng đa chiều:  Mảng đa chiều kích thước (Rectangle)  Mảng đa chiều khơng kích thước (Jagged Array) Khoa Cơng nghệ Thông tin - Đại học Ngân hàng TP.HCM Mảng đa chiều kích thước    Khai báo [ , ] ;  Ví dụ: int [ ] array; Khởi tạo = new [,];  Ví dụ: int [ , ] array = new int [ 3, ]; Duyệt mảng: for (int i = 0; i < rows; i++) for (int j = 0; j < columns; j++) Xử_lý A{i,j]; Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 10 IComparer public int Compare( lhs, rhs) { return lhs.CompareTo(rhs.CmpType); } }//end class Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 18 IComparer //Định nghĩa class class : Icomparable { … public static GetComparer() { return new .; } public int CompareTo( rhs) { Tên_class r = (Tên_class) rhs; return this.Tên_Field.CompareTo(rhs.Tên_Field); }//Phương thức so sánh mặc định //Xem tiếp trang sau Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 19 IComparer //Định nghĩa class public int CompareTo( rhs, ..ComparisionType w) { switch(w) { case ..ComparisionType.field1: return this.field1.CompareTo(rhs.field1); case … } return 0; } //Định nghĩa class … }//end class Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM 20 Danh sách liên kết  Đặt vấn đề:  Thêm phần tử vào mảng, chi phí O(n)  Xóa phần tử mảng, chi phí O(n)  Khó cấp phát Tách phần tử riêng rẽ, tìm cách liên kết chúng Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM 21 Danh sách liên kết Địa liên kết Data  Thành phần liệu Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 22 Danh sách liên kết  Một dãy nút (Node) liên kết với địa  Các nút không cần phải lưu trữ liên tiếp nhớ  Có thể mở rộng tuỳ ý (chỉ giới hạn dung lượng nhớ)  Thao tác Chèn/Xóa khơng cần phải dịch chuyển phần tử  Có thể truy xuất đến phần tử khác thông qua địa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 23 Danh sách liên kết  Thêm phần tử  Xóa phần tử  Liệt kê  Tính tốn Khoa Cơng nghệ Thông tin - Đại học Ngân hàng TP.HCM 24 Danh sách liên kết public class Node: IComparable where T: IComparable { private T data; private Node next; public Node(T data) { this.data = data; this.next = null; } //Đóng gói DL //các phương thức } Khoa Cơng nghệ Thông tin - Đại học Ngân hàng TP.HCM 25 Danh sách liên kết //Đóng public { get{ set{ } gói liệu: Properties T Data return this.data;} this.data = value;} public Node Next { get { return this.next; } set { this.next = value;} } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 26 Danh sách liên kết //các phương thức dùng để so sánh xếp public int CompareTo(Node rhs) { return data.CompareTo(rhs.data); } public bool Equals(Node rhs) { return this.data.Equals(rhs.data); } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 27 Danh sách liên kết public class LinkList where T: IComparable { private Node head; public LinkList() { this.head = null; } //các phương thức } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 28 Danh sách liên kết public void InsertFirst(T data) { if(head == null) head = new Node(data); else { Node node = new Node(data); node.next = head; head = node; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 29 Danh sách liên kết //In danh sách public void PrintList() { while(head != null) { Console.Write("{0} ", this.head.Data); head = head.Next; } } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 30 Danh sách liên kết class Program { static void Main(string[] args) { Random r = new Random(); LinkList intList = new LinkList(); for (int i = 0; i < 10; i++) { int nextInt = r.Next(10); Console.Write("{0} ", nextInt); intList.InsertFirst(nextInt); } Console.WriteLine("\nDanh sach cac so:"); intList.PrintList(); Console.Read(); } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM } 31 Q&A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 32 ... intList.PrintList(); Console.Read(); } Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM } 31 Q&A Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 32 ... địa Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 23 Danh sách liên kết  Thêm phần tử  Xóa phần tử  Liệt kê  Tính tốn Khoa Cơng nghệ Thơng tin - Đại học Ngân hàng TP.HCM 24 Danh sách liên... kết chúng Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 21 Danh sách liên kết Địa liên kết Data  Thành phần liệu Khoa Công nghệ Thông tin - Đại học Ngân hàng TP.HCM 22 Danh sách liên kết

Ngày đăng: 11/05/2021, 00:31

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN