When we control the event,we control your lives |
April 2024 | Mon | Tue | Wed | Thu | Fri | Sat | Sun |
---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | | Calendar |
|
| | Bài Stack và Queue bằng OOP | |
| | Tác giả | Thông điệp |
---|
minhlap Admin - Quản trị viên
Tổng số bài gửi : 129 Points : 374 Reputation : 5 Join date : 22/07/2009 Age : 34 Đến từ : TP Hồ Chí Minh
| Tiêu đề: Bài Stack và Queue bằng OOP Sun Aug 02, 2009 6:05 pm | |
| File LIFO.cpp - Code:
-
http://LIFO.cpp//Minh Lap #include"iomanip.h" #include"iostream.h" #include"stdlib.h" typedef int elem; #define M 100 class Stack { int kichthuoc; int top; elem *data; public: Stack(int); ~Stack(); int StackRong(); int StackDay(); void Push(elem); elem Pop(); void Nhap(int &); void DuyetStack(int); }; Stack::Stack(int kichthuoc) { top=-1; this->kichthuoc=kichthuoc; data=new elem[this->kichthuoc]; } Stack::~Stack() { delete []data; } int Stack::StackRong() { return top==-1; } int Stack::StackDay() { return top==(this->kichthuoc)-1; } void Stack::Push(elem data) { if(StackDay()) { cout<<"Stack day"; exit(0); } else { top++; this->data[top]=data; } } elem Stack::Pop() { elem x; if(StackRong()) { cout<<"Stack rong"; x=-1; exit(0); } else { x=this->data[top--]; } return x; } void Stack::DuyetStack(int k) { int i; for(i=0;i<k;i++) cout<<setw(5)<<this->Pop(); } void Stack::Nhap(int &n) { do { cout<<"Nhap so phan tu :"; cin>>n; }while(n<0); elem x; for(int i=0;i<n;i++) { cout<<"Nhap x["<<i<<"] :"; cin>>x; this->Push(x); } } void main() { int n; Stack a(100); a.Nhap(n); a.DuyetStack(n); } File Queue.cpp - Code:
-
#include"iomanip.h" #include"iostream.h" #include"stdlib.h" typedef int elem; class Queue { int kichthuoc; int front,rear; elem *data; public: Queue(int); ~Queue(); int QueueRong(); int QueueDay(); void AddQueue(elem); elem RemoveQueue(); void Nhap(int &); void DuyetQueue(int); }; Queue::Queue(int kichthuoc) { this->front=this->rear=0; this->kichthuoc=kichthuoc; data=new elem[this->kichthuoc]; } Queue::~Queue() { delete []data; } int Queue::QueueRong() { return front==rear; } int Queue::QueueDay() { int nr=(this->rear+1)%(this->kichthuoc); if(nr==this->front) return 1; return 0; } void Queue::AddQueue(elem data) { int nr=(this->rear+1)%(this->kichthuoc); if(QueueDay()) { cout<<"Queue day"; exit(0); } else { this->data[this->rear]=data; this->rear=nr; } } elem Queue::RemoveQueue() { elem x; if(QueueRong()) { cout<<"Queue rong"; x=-1; exit(0); } else { x=this->data[this->front]; this->front=(this->front+1)%(this->kichthuoc); } return x; } void Queue::DuyetQueue(int k) { int i; for(i=0;i<k;i++) cout<<setw(5)<<this->RemoveQueue(); } void Queue::Nhap(int &n) { do { cout<<"Nhap so phan tu :"; cin>>n; }while(n<0); elem x; for(int i=0;i<n;i++) { cout<<"Nhap x["<<i<<"] :"; cin>>x; this->AddQueue(x); } } void main() { int n; Queue a(100); a.Nhap(n); a.DuyetQueue(n); }
| |
| | | symphonyenigmatic Thành viên bậc 3
Tổng số bài gửi : 61 Points : 104 Reputation : 6 Join date : 26/07/2009 Age : 35 Đến từ : http:://thienthancntt.tk
| Tiêu đề: Hỏi hàm StackDay() Tue Aug 04, 2009 2:15 pm | |
| Stack của bạn khi đầy thì return Top = (this->KichThuoc) - 1; Điều đó là sao vậy? Thiệc sự chưa hỉu lắm, theo giáo trình Thầy Long cho hồi năm ngoái hình như không có hàm Stack Đầy, chỉ có Rỗng thôi. Bạn giải thik kĩ hơn dc không? | |
| | | anbinhtrong Thành viên bậc 1
Tổng số bài gửi : 13 Points : 17 Reputation : 1 Join date : 29/08/2009 Age : 35 Đến từ : BT
| Tiêu đề: Stack đầy Wed Sep 16, 2009 11:01 am | |
| Thật ra mình nghĩ không nên làm hàm stack đầy vì chỉ đơn giản bạn kt nó có = top hay không? - Trích dẫn :
- return Top == (this->KichThuoc) - 1;
vì mảng C++ cũng bắt đầu từ 0 mà. Mình nên nghĩ bạn thử dùng template để viết xem sao. | |
| | | minhlap Admin - Quản trị viên
Tổng số bài gửi : 129 Points : 374 Reputation : 5 Join date : 22/07/2009 Age : 34 Đến từ : TP Hồ Chí Minh
| Tiêu đề: Re: Bài Stack và Queue bằng OOP Thu Sep 17, 2009 11:15 am | |
| tôi viêt như vậy là có lúc dùng đến | |
| | | Sponsored content
| Tiêu đề: Re: Bài Stack và Queue bằng OOP | |
| |
| | | | Bài Stack và Queue bằng OOP | |
|
Trang 1 trong tổng số 1 trang | |
Similar topics | |
|
| Permissions in this forum: | Bạn không có quyền trả lời bài viết
| |
| |
| |
|