IV. GIỚI THIỆU VỀ UML
2. Thiết kế mức cài đặt:
2.7 Các lớp tiện ích:
Giải thích:
• Cấu trúc sData được dùng để chứa thơng tin kiểu T (một loại lớp chưa biết). Nĩ cĩ con trỏ next cĩ thể trỏ đến kiểu sData.
• Lớp sData<T> là lớp chuyên biệt của lớp sData với thơng tin về kiểu là T.
• Lớp CStack là stack dùng để chứa các đối tượng thuộc kiểu T. Nĩ cĩ một con trỏ tail thuộc kiểu sData<T>.
• Lớp CStack<Object2D> là lớp chuyên biệt của lớp CStack với thơng tin về kiểu là Object2D.
• Lớp ObjectList dùng stack để chứa các đối tượng Object2D. Nĩ cĩ một con trỏ list thuộc kiểu CStack<Object2D>.
• Lớp CStack<PositionInfo> là lớp chuyên biệt của lớp CStack với thơng tin về kiểu là PositionInfo.
• Lớp PositionInfoList dùng stack để chứa các đối tượng PositionInfo. Nĩ cĩ một con trỏ list thuộc kiểu CStack<PositionInfo>.
Hàng đợi ưu tiên:
Giải thích:
Lớp PriorityQueue dùng để chứa các hướng đi cĩ thể cĩ của Robot từ vị trí hiện tại với độ ưu tiên dựa vào độ lệch so với điểm dự đốn. Nĩ cĩ một con trỏ items dùng để trỏ đến phần tử đầu tiên của danh sách ưu tiên. Mỗi phần tử của danh sách ưu tiên chứa vị trí, độ ưu tiên và một con trỏ next để trỏ đến phần tử kế tiếp trong danh sách. Phần tử cuối cùng sẽ khơng trỏ đến đâu cả (trỏ đến NULL). Phương thức remove được dùng để lấy phần tử đầu khỏi danh sách (phần tử kế tiếp nếu cĩ sẽ là phần tử đầu của danh sách). Phương thức add dùng để thêm một phần tử (cĩ thơng tin về vị trí và độ ưu
tiên) vào danh sách ở vị trí thích hợp. Trong trường hợp cĩ nhiều phần tử cùng độ ưu tiên thì trật tự của chúng là ngẫu nhiên.