[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;
}