[C/C++]Stack và ứng dụng- Stack trong C++ – Stack in C++
Stack là một danh sách có thứ tự mà phép chèn và xóa được thực hiện tại đầu cuối của danh sách và người ta gọi đầu cuối này là đỉnh (top) của stack.
Sau đây là code và cũng là một số phép toán trong Stack thực hiện bằng C++
#include <stdlib.h> #include <stdio.h> #include <stack> //khai bao Stack using namespace std; int main() { stack <int> S; //Khai bao Stack for (int x=0; x<10; x++) //Nhap Stack S.push(x*2); //Them phan tu vao Stack printf("nDo dai Stack: %d n",S.size()); //Do dai Stack while(!S.empty()) //Trong khi danh sach khong rong thi duyet va xuat ra Stack { int x = S.top(); //lay gia tri Top S.pop(); //Loai bo phan tu Top printf("%d ",x); //Xuat ra Stack } return 0; }
Ứng dụng của Stack
Stack có rất nhiều ứng dụng trong tin học như :
– Chuyển đổi các cơ số (nhị phân, thập phân, bát phân,…)
– Chuyển biểu thức trung tố sang hậu tố, tính toán các biểu thức hậu tố,…
Bây giờ chúng ta sẽ tìm hiểu và cài đặt 2 bài toán trên
– Chuyển cơ số: Code sau sẽ chuyển số cơ số 10 sang cơ số x nhập từ bàn phím
#include <stdlib.h> #include <stdio.h> #include <stack> //khai bao Stack using namespace std; int main() { stack <int> S; int coso, so, du, n; printf("Nhap so can chuyen: "); scanf("%d",&so); n = so; printf("Nhap co so can chuyen: "); scanf("%d",&coso); while(so) { du = so % coso; S.push(du); so /= coso; } printf ("So %d trong he %d la : ", so, coso); while(!S.empty()) { printf("%d",S.top()); S.pop(); } return 0; }
anh/bạn ơi liệt kê hộ em/mình các thao tác liên quan đến stack và queue vơi
Bạn xem ở đây nehs
https://www.cachhoc.net/2014/12/29/lap-trinh-c-bai-15-cai-dat-ngan-xep-stack/
Bạn ơi thế còn “Chuyển biểu thức trung tố sang hậu tố, tính toán các biểu thức hậu tố,…” nó ở đâu ạ??
Bạn xem cách chuyển trung tố sang hậu tố ở đây nhé
https://www.cachhoc.net/2013/07/07/thuat-toan-java-chuyen-bieu-thuc-trung-to-sang-hau-to-java-converts-infix-to-postfix/
chuong trinh cua anh bi loi roi !!!
Lỗi ở chỗ nào vậy bạn?
a có code c về ứng dụng stack về bài toán kiểm tra dấu ngoặc hợp lệ k ạ
Anh không nhưn tư tưởng là đưa dấu đóng vào, khi nào gặp dấu mở thì sẽ kiểm tra dấu đóng tương ứng.
anh ơi có code C++ dùng stack và queue để chuyển số thực có phần nguyên bằng 0 (0.2435) sang hệ nhị phân ko a?
trong bài có ví dụ rồi, bạn tự phát triển theo nhé.