Hàng đợi(Queue)
- Định nghĩa: Tập hợp các node thông tin được tổ chức liên tục hoặc
rời rạc nhau trong bộ nhớ và thực hiện theo cơ chế FIFO (First – In – First –
Out ) - Khá giống với Stack khác nhau ở cơ chế Vào ra Dữ liệu
- Biểu diễn liên tục: Các phần tử được lưu trữ liền kề nhau (Array-Mảng)
- Biểu diễn rời rạc: Các phần tử được lưu trữ rời rạc (LinkedList-DS liên kết)
- Khai báo
Ta cần:- 1 con trỏ Input biểu diễn lối vào của Hàng đợi
- 1 con trỏ Output biểu diên lối ra của hàng đợi
- 1 kiểu dữ liệu lưu các giá trị: Array, LinkedList, List, Vector..
class Queue{ int inp; int out; int s[100]; } - Các thao tác
- Kiểm tra tính Rỗng của stack:inp=out=-1 là rỗng và ngược lại
bool isEmpty(){ if(inp==out==-1) return true; return false; } - Kiểm tra tính đầy của stack: do mình đặt size=100 nên khi inp==99 sẽ là đầy queue
bool isFull(){ if(inp==99) return true; return false; } - Thêm 1 phần tử vào queue
void push(int value){ if(!isFull()) s[++inp]=value; else cout<<"Queue Full"<< endl; } - Lấy 1 phần tử ra khỏi stack
int pop(){ if(!isEmpty()){ int x=s[++out]; return x; } else cout<<"Queue Empty"<< endl; }
- Kiểm tra tính Rỗng của stack:inp=out=-1 là rỗng và ngược lại
- Trong thư viện STL của C++ cũng có 1 lớp Stack được cài đặt sẵn như List hay Vector ở bài trước:
Lưu ý cần include lớp Stack: #include< stack >- Khai báo: stack < kieu_du_lieu > ten_bien
VD: stack < int > a; - Các hàm hay sử dụng:
- bool empty();// Queue rỗng trả về true và ngược lại
- void push(value);// thêm 1 phần tử vào cuối Queue
- void pop();//xóa phần tử ở đầu Queue
- reference front();//trả về giá trị tại đầu Queue
- reference back();//trả về giá trị tại cuối Queue
- int size();//trả về kích thước của Queue
- duyệt các phần tử trong Queue: :từ đầu tới cuối
void show(queueq){ while(!q.empty()){ cout << q.front() << " "; q.pop(); } cout << endl; }
- Khai báo: stack < kieu_du_lieu > ten_bien
- Code các bạn có thể tham khảo ở đây và ở đây

0 Nhận xét