Cần giúp đỡ bài tập hàng đợi
Đề Viết chương trình mô phỏng quy trình xếp hàng đặt vé xem phim như sau:
Danh sách liên kết A chứa số ghế của các ghế trống trong rạp (ban dầu khởi tạo các số ghế từ 1 đến n).
Danh sách hàng đợi B chứa số thự tự xếp hàng của khách.
Danh sách liên kết C chứa thông tin khách đã mua vé (số ghế, tên).
Chức năng lấy số xếp hàng: Thêm nút vào B, nếu B rỗng thì nút thêm sẽ có số thứ tự xếp hàng là 1, ngược lại thì số thứ tự xếp hàng là k+1 với k là số thứ tự của nút cuối của B.
Chức năng mua vé: Nếu còn ghế trống và có khách đang chờ mua vé thì xóa nút khỏi B, lấy tên khách và số ghế khách chọn để thêm nút vào C đồng thời loại số ghế đó khỏi A.
Chức năng hủy vé: Xóa nút khỏi C đồng thời thêm số ghế mới hủy vào A.
Chức năng hiển thị: Hiển thị thông tin những vé đã bán (DSLK C).
Nhờ mọi người hướng dẫn mình cách làm mấy cái chức năng bài này với, mình viết code tới mấy chức năng này thì không biết cách giải quyết thế nào, mình tự học nhưng viết tới cái này thì nghĩ mãi không ra. Chỉ giúp mình cách giải quyết cũng được, code mình tự viết :smile: Cảm ơn các bạn nhiều ^^
ai giúp mình gợi ý hướng đi với
Bạn xem về các method cơ bản trong Linked List, thầy bạn đang yêu cầu làm một Queue cơ bản (cũng tương tự DSLK)
mình tự học cũng gọi là cũng thành thạo mấy cái method của Linklist cơ bản rồi, bạn có thể hướng dẫn mình làm chức năng 2 không ạ
Đề bài cũng chỉ khá rõ rồi, bạn đọc qua chức năng 2 thì: Nếu còn ghế trống tức là DSLK A vẫn còn phần tử hay hàm kiểm tra isEmpty(A) != false, đồng thời "Có khách đang chở mua vé " tức Hàng đợi B còn phần tử. Nếu thỏa 2 điều kiện trên thì bạn deQueue hàng đợi B (Chắc bạn cũng biết deQueue hàng đợi rồi) , lấy phần data để tạo nút mới cho DSLK C.
Tóm lại nó như thế này
Các thao tác với linked List , Queue chắc bạn đã nắm hết rồi nên mình không nói ở đây.
cảm ơn bạn nhiều
hàm isEmty(A) mình viết như thế này đúng không bạn
int IsEmpty(QueueA &a) { if(a.pHead==NULL) return 1; else return 0; }
còn hàm IsEmpty(QueueB &b) giống như hàm IsEmpty(QueueA &a) đúng không bạn?
Hàm DeQueue viết thế này đúng không bạn
mình không biết cách lấy khách và số ghế khách chọn để thêm nút vào C bạn chỉ mình với
mình yếu phần này lắm… làm phiền bạn… cảm ơn bạn nhiều
Phân tích chút xíu: Phần data cuả A va B giống nhau vì data của A la 1 số int lưu số thứ tự ghế, phần data của B là số thứ tự trong hàng (cái này thừa)
-> vậy định nghĩa 1 danh sách liên kết cho A và B
Phần data của C tức dslk lưu các vé đã đặt thì có ten, số thứ tự ghế. nên định nghĩa riêng cho C 1 dslk
2 chuc nang tiep theo thi chac de roi.
Thực ra mình thấy cái B no cứ vô dụng làm sao ấy, cần gì stt, nguoi dung dat ve la kiem tra ghe trong roi them ve vao C thoi chu nhi, mình tưởng phần xếp hàng là đặt vé nên
bên trên có dequeue để lấy data nhưng đọc thì B chỉ có tác dụng xếp hàng mua vé.
Tóm lại các thao tác với dslk đơn chắc chắn bạn phải nắm vững. Các hàm trên đều dựa vào các thao tác với dslk đơn thôi.