Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- using namespace std;
- #define MAX 100 // phan tu trong stack toi da la 100
- typedef int item;// kieu du lieu cua stack
- struct stack
- {
- int top; // dinh top
- item Data[MAX];// mang cac phan tu
- };
- void taostack(stack &s); //khoi tao Stack rong
- bool ktstackRong(stack s); //kiem tra Stack rong
- bool ktstackMax(stack s); //kiem tra Stack day
- void pushstack(stack &s, item x); //them phan tu vao Stack
- int peekstack(stack s); //Lay phan tu o dau Stack nhung khong xoa
- int popstack(stack &s); //Loai bo phan tu khoi Stack
- void input(stack &s); //Nhap Stack
- void output(stack s); //Xuat Stack
- void taostack(stack &s)// khoi tao danh sach rong
- {
- s.top = 0;
- }
- bool ktstackRong (stack s)// kiem tra stack co rong hay khong ?
- {
- if (s.top == 0)
- return true;
- else
- return false;
- }
- bool ktstackMax(stack s)// kiem tra stack co day hay khongg ?
- {
- if (s.top == MAX)
- return true;
- else
- return false;
- }
- void pushstack(stack &s, item x)// them phan tu vao dau stack
- {
- if (!ktstackMax(s))
- {
- s.Data[s.top] = x;// gan du lieu;
- s.top++;// top se tang len 1
- }
- }
- int peekstack(stack s)// lay phan tu cua gia tri dau trong stack nhung khong xoa
- {
- return s.Data[s.top-1];
- }
- int popstack(stack &s)// lay phan tu cua gia tri dau trong stack va xoa
- {
- if (!ktstackRong(s))
- {
- s.top--;
- return s.Data[s.top];// update lai du lieu khi sau khi xoa phan tu
- }
- }
- void input(stack &s)// nhap
- {
- int n;
- item x;
- do
- {
- cout << "nhap so phan tu cua stack: ";
- cin >> n;
- } while (n > MAX || n < 1);
- for (int i=0; i < n; i++)
- {
- cout << "nhap phan tu thu " <<i+1 << ": ";
- cin >> x;
- pushstack(s, x);// them vao dau stack
- }
- }
- void output(stack s)//xuat
- {
- for (int i = s.top - 1; i >= 0; i--)
- {
- cout << " " << s.Data[i];
- cout << "\n";
- }
- }
- int main()
- {
- stack s;
- taostack(s);
- input(s);
- output(s);
- int lua_chon;
- cout<<"Moi ban chon phep toan voi DS LKD: ";
- cout<<"\n1: Kiem tra Stack rong";
- cout<<"\n2: Kiem tra Stack day";
- cout<<"\n3: Them phan tu vao Stack";
- cout<<"\n4: Xoa phan tu trong Stack";
- cout<<"\n5: Xuat Stack";
- cout<<"\n6: Thoat";
- do
- {
- cout<<"\nBan chon: ";
- cin >> lua_chon;
- switch (lua_chon)
- {
- case 1:
- {
- if (ktstackRong(s)) cout<<"Stack rong !";
- else cout<<"Stack khong rong !";
- break;
- }
- case 2:
- {
- if (ktstackMax(s)) cout<<"Stack day !";
- else cout<<"Stack chua day !";
- break;
- }
- case 3:
- {
- item x;
- cout<<"Nhap phan tu can chen vao DS: ";
- cin >> x;
- pushstack(s, x);
- break;
- }
- case 4:
- {
- popstack(s);
- break;
- }
- case 5:
- {
- output(s);
- break;
- }
- case 6: break;
- }
- } while (lua_chon != 6);
- return 0;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement