Điều này cực kì vô lí, trừ phi bạn không thấy đường thôi. Ở trang chủ có mục Hướng dẫn sử dụng code tag đấy.
Tôi đề nghị bạn nên đưa code vào tag, nói rõ sai ở đâu, gặp lỗi gì... cho mọi người dễ giúp, cả đoạn code dài thế muốn giúp bạn người ta cũng ngại đọc -> bỏ qua luôn.
Bài stack cần xem lại cách khởi tạo và sử dụng biến top cho hợp lí:
Mã:
void khoitao(stack &d) { d.top=-1; } int ktrong(stack d) { return d.top==-1; } void push(stack &d, char x) { d.top++; d.a[d.top-1]=x; // lần đầu push d.top-1 = -1 -> có tồn tại d.a[d.top-1] ? } void pop(stack &d) { cout<<d.a[d.top-1] ; d.top--; }
Sửa lại thế này:
Mã:
void khoitao(stack &d) { d.top=-1; } int ktrong(stack d) { return d.top==-1; } void push(stack &d, char x) { d.top++; d.a[d.top]=x; } void pop(stack &d, char &x) { if(ktrong(d)) return 0; x = d.a[d.top] ; d.top--; return 1; }
Trong hàm chuyen(int n, int k) tôi lưu ý bạn vài điều:
Mã:
void chuyen(int n, int k) { int du; stack d; char x; cout<<"
NHap so "; cin>>n; cout<<"
Nhap co so : "; cin>>k; cout<<"
So "<<n<<" o he co so "<<k<<" la : "; while(n!=0) { du=n%k; // du thuộc [0 ... k-1] n=n/k; if(du>='0'||du<='9') // '0' = 48 , '9' = 57 x=du+48; else x=65+du-10; push(d,x); } // lệnh này:// pop(d); // nên sửa lại: while(pop(d,x)) cout<<x; }
Bài về cây nhị phân tìm kiếm bạn nên làm như tôi đã nói ớ trên sẽ có nhiều sự giúp đỡ hơn đấy.
Tôi đọc qua thì thấy vài điều:
1. Trong hàm timkiem và xoa dòng đầu bạn cho p = new node với mục đích gì?
2. Hàm menu()
Mã:
void menu(){//.....case'4': cout<<"
So bao danh : "; cin>>x.sbd; cout<<timkiem(d,x); // hàm timkiem trả về 1 node* , chỗ này xuất cái gì? break;//....}
3. Hàm xóa 1 node có khóa x có thể viết thế này:
Mã:
// Tìm phần tử thế mạng cho nút pvoid searchStandFor(node *&p, node *&q){ if(q->left) searchStandFor(p, q->left); else{ p->info = q->info; p = q; q = q->right; }} int delNode(node *&T, sv x){ if(T == NULL) return 0; if( (*T).info.sbd > x.sbd ) return delNode(T->left, x); if( (*T).info.sbd < x.sbd ) return delNode(T->right, x); node *p = T; if(T->left == NULL) T = T->right; else if(T->right == NULL) T = T->left; else{ Node *q = T->right; searchStandFor(p, q); } delete p; return 1;}
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...