Bạn post bài thế này thì biết giúp bạn thế nào?
Bạn hỏi về gì? Lỗi hay tối ưu?....
Code:#include<iostream.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<ctype.h> const Max = 100; class queue { private: int front,rear; //dau va cuoi queue int nodes[Max]; public: queue() // cau tu khoi dong queue { front = 0; rear = -1; } void xuat(); int empty(); // kiem tra queue bi rong khong int full(); // kiem tra queue co bi day chua int insert(); // them mot nut vao cuoi queue int remove(); // xoa nut o dau queue int queuesize(); // xac dinh so nut co trong queue }; int queue::queuesize() { return(rear - front + 1); } int queue::empty() { int kq; if (rear<front) kq=1; else kq=0; return (kq); } int queue::full() { int kq; if (rear == (Max-1)) kq=1; else kq=0 ; return(kq); } int queue::insert() { int x; cout<<"\n Nhap phan tu can them vao queue "; cin>>x; if(full()) cout<<endl<<"queue bi day "; else return (nodes[++rear]=x); } int queue::remove() { if(empty()) cout<<endl<<"\n queue bi rong khong the lay ra them phan tu nao"; else return nodes[front++]; } void queue::xuat() { for(int i=rear;i>=front;i--) cout<<" "<<nodes[i]; } void menu() { cout<<"\n An (t/T) them phan tu vao queue "; cout<<"\n An (l/L) lay phan tu ra khoi queue "; cout<<"\n An (x/X) xuat cac phan tu con lai cua queue "; cout<<"\n An (q/Q) de thoat ra "; } int main() { queue a; clrscr(); menu(); while(1) { switch(toupper(getch())) { case 't': case 'T': cout<<"\n Phan tu "<<a.insert()<<" them vao thanh cong\n"; menu(); break; case 'l': case 'L':if(!a.empty()) cout<<"\n Phan tu "<<a.remove()<<" duoc lay ra thanh cong\n "; else cout<<"\n queue bi rong khong the lay ra them phan tu nao \n "; menu(); break; case 'x': case 'X':if(!a.empty()) cout<<"\n Phan tu con lai la : "; else cout<<"\n queue bi rong"; a.xuat(); menu(); break; case 'q': case 'Q':cout<<"\n Ban da thoat ra thanh cong "; goto tt; } } tt:getch(); }
chuong_gio
Bạn post bài thế này thì biết giúp bạn thế nào?
Bạn hỏi về gì? Lỗi hay tối ưu?....
Không biết ghi gì luôn ...
Cái menu driver viết búa xua, 1 số hàm không chạm vào thuộc tính thì gán cho nó const liền.C++ Code:
#include<iostream> const int MaxQueue = 100; //free-standing function namespace r2{ void clrscr(){ } void menu(std::ostream& oss){ oss << "\n An (t/T) them phan tu vao queue "; oss << "\n An (l/L) lay phan tu ra khoi queue "; oss << "\n An (x/X) xuat cac phan tu con lai cua queue "; oss << "\n An (q/Q) de thoat ra "; } } class queue{ private: int front,rear; //dau va cuoi queue int nodes[MaxQueue]; public: queue():front(0), rear(-1){ } void xuat(std::ostream& ) const; bool empty() const; // kiem tra queue bi rong khong bool full() const; // kiem tra queue co bi day chua void insert(); // them mot nut vao cuoi queue void remove(); // xoa nut o dau queue int queuesize() const; // xac dinh so nut co trong queue }; int queue::queuesize() const{ return(rear - front + 1); } bool queue::empty() const{ return rear < front; } bool queue::full() const{ return front == MaxQueue - 1; } void queue::insert(){ if(full()) else{ int item; nodes[++rear] = item; } } void queue::remove(){ if(empty()) else nodes[front++]; } void queue::xuat(std::ostream& oss) const{ if(empty()) else{ for(int x = rear; x >= front; --x) oss << " "<< nodes[x]; } } int main(){ queue a_queue; char user_answer; do{ switch(user_answer) { case 't': case 'T': a_queue.insert(); break; case 'l': case 'L': a_queue.remove(); break; case 'x': case 'X': break; case 'q': case 'Q': user_answer = 'q'; default : break; } r2::clrscr(); }while(user_answer != 'q'); return 0; }
em cảm ơn!anh chị xem giúp e với đề đó thì làm như vậy có đc k?anh,chị có thể làm bài này giúp em sử dụng con trỏ trong class đc k ạ?
chuong_gio
Con trỏ là sao, cấp phát động cho mãng lúc run-time à ? Give more information please !em cảm ơn!anh chị xem giúp e với đề đó thì làm như vậy có đc k?anh,chị có thể làm bài này giúp em sử dụng con trỏ trong class đc k ạ?
trong queue có 2 con trỏ là f và r trỏ tới 2 đầu của queue.khi thêm 1 phần tử vào queue sẽ thực hiện thêm vào cuối queue,khi đó con trỏ r sẽ trỏ tới vị trí của phần tử mới tức là r tăng.khi loại bỏ 1 ptu trong queue cũng vậy,f cũng sẽ tăng lên.e k hiểu lắm về con trỏ nên mong các a chị làm giúp e đề tài này sử dụng con trỏ,trong class thì càng tốt.e cảm ơn!
chuong_gio