MỤC LỤC
- Void xuat_1_lop(DSLOP& ds): Hàm được khởi tạo nhằm mục đích xuất thông tin cho 1 đối tượng lớp học. - Void printline(int& num): Giúp thông tin xuất ra được ngăn cách có tính thẩm mỹ. - int Linearysearch(DSLOP ds[], int n, char x[]): Chương trình tìm kiếm MaLop tuyến tính. 11) Hàm tìm kiếếm Linearysearch(Ln).
- Vì hàm sắp xếp Binarysearch chỉ thực hiện được chức năng tìm kiếm của mình khi thông tin đã được sắp xếp tăng dần nên ta cần dùng hàm if để trả về không tìm thấy thông tin nếu đối tượng cần tìm chưa được sắp xếp.
- Void Finish(int& key): Chương trình với mục đích thông báo đã hoàn thành nhiệm vụ được chọn và đưa người dùng về trang menu.
Các phần tử này được lưu trữ dưới dạng các node (nút) và được kết nối với nhau thông qua các liên kết. Mỗi node trong danh sách liên kết thường chứa một giá trị dữ liệu và một con trỏ đến node tiếp theo trong danh sách. Trong khi đó, danh sách liên kết là một cấu trúc dữ liệu chứa một con trỏ đến node đầu tiên trong danh sách.
Với cấu trúc này, chúng ta có thể thêm, xóa phần tử hoặc duyệt danh sách một cách dễ dàng và hiệu quả. Ngoài ra, danh sách liên kết còn cho phép tối ưu hóa việc sử dụng bộ nhớ, đặc biệt là khi chúng ta cần thêm hoặc xóa phần tử ở giữa danh sách. Hàm “CreateNode” được tạo ra một node mới với giá trị được truyền vào và con trỏ “next” được khởi tạo là NULL.
Hàm tạo list được sử dụng để tạo ra một danh sách liên kết mới. Nó có thể được thực hiện bằng cách sử dụng cấp phát động, hoặc bằng cách khởi tạo một đối tượng trong C++. - void AddTail(LIST& l, NODE* p) : Dùng để tạo thông tin mới được nhập vào thành một node và thêm vào cuối danh sách.
- void InputList(LIST& l) : Dùng để nhập thông tin cho nhiều lớp học và thêm từng lớp học vào danh sách.
Khởi tạo một node temp để lưu trữ giá trị của phần tử được chọn để so sánh với các phần tử khác trong danh sách. Duyệt danh sách và tìm phần tử có giá trị nhỏ nhất hoặc lớn nhất (tuỳ thuộc vào yêu cầu sắp xếp) bằng cách so sánh giá trị của node temp với các node khác. Tiếp tục tìm kiếm phần tử nhỏ nhất hoặc lớn nhất trong danh sách còn lại bằng cách bỏ qua node temp đã được sắp xếp.
Các phép toán chèn, xóa node và duyệt danh sách sẽ được sử dụng trong quá trình thực hiện hàm selectionsort. Sau khi duyệt hết danh sách từ phần tử đầu tiên đến phần tử cuối cùng, ta quay lại bước 1 và tiếp tục thực hiện phân tích. Nó chỉ nên được sử dụng cho danh sách liên kết nhỏ vì nếu danh sách quá lớn thì thời gian để sắp xếp danh sách liên kết sẽ rất lâu.
Nếu phần tử hiện tại lớn hơn hoặc bằng phần tử đã được sắp xếp, tiếp tục duyệt qua danh sách đã được sắp xếp. Khi chèn một phần tử vào danh sách đã được sắp xếp, ta cần sử dụng một con trỏ để chỉ đến phần tử trước phần tử đang xét trong danh sách đã được sắp xếp. Điều này tương tự như khi chèn một phần tử vào một danh sách đã được sắp xếp bằng mảng, nhưng một lợi thế của danh sách liên kết là ta có thể chèn phần tử mới mà không ảnh hưởng đến toàn bộ danh sách.
Hàm quicksort trong danh sách liên kết sử dụng phương pháp chia để trị (divide and conquer) để sắp xếp các phần tử trong danh sách. Sau đó, danh sách được chia thành hai phần: một phần chứa tất cả các phần tử nhỏ hơn hoặc bằng pivot, và một phần chứa tất cả các phần tử lớn hơn pivot. Khi quá trình sắp xếp đã hoàn thành, các phần tử trong danh sách được sắp xếp theo thứ tự tăng dần hoặc giảm dần.
Tuy nhiên, để sử dụng hàm quicksort trong danh sách liên kết, cần phải chú ý đến việc thực hiện các thao tác cập nhật các liên kết giữa các nút trong danh sách khi chia danh sách và ghép lại các danh sách con. Xây dựng menu chọn trong chương trình C++ có mục đích là để giúp người dùng tương tác với chương trình dễ dàng hơn. Menu chọn cho phép người dùng lựa chọn các tùy chọn khác nhau trong chương trình, từ đó giúp tối ưu hóa trải nghiệm người dùng và giúp người dùng tiết kiệm thời gian và công sức khi sử dụng chương trình.
Để sử chương trình được trực quan ta cần 2 hàm menu và Finish để giúp người dùng chọn các chức năng cũng như hàm finish để thông báo chức năng và gọi lại menu tùy chọn. - Void Finish(int& key) : thông báo kết thúc hàm chức năng và gọi lại menu để người dùng tiếp tục hoặc thoát tùy nhu cầu.