Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- struct node
- {
- int data;
- struct node *pNext;
- };
- typedef struct node NODE;
- struct stack
- {
- NODE* pHead;
- NODE* pTail;
- };
- typedef struct stack STACK;
- void init(STACK& s)
- {
- s.pHead = NULL;
- s.pTail = s.pHead;
- }
- NODE* getnode(int x)
- {
- NODE* p = new NODE;
- p->pNext = NULL;
- p->data = x;
- return p;
- }
- bool ifempty(STACK s)
- {
- if (s.pHead == NULL) return true;
- else return false;
- }
- int pop(STACK &s)//lấy giá trị top ra và phá hủy nó
- {
- if (ifempty(s) == true) cout << "error";
- else
- {
- int x;
- NODE* p = s.pHead;
- x = p->data;
- delete p;
- return x;
- }
- }
- int peak(STACK& s,int x)
- {
- if (ifempty(s) == true) cout << "error";
- else
- {
- x = s.pHead->data;
- }
- return x;
- }
- void push(STACK& s, NODE *p)
- {
- if (ifempty(s) == true) cout << "error";
- else
- {
- p->pNext = s.pHead;
- s.pHead = p;
- }
- }
- void input(STACK& s)
- {
- int x;
- int n;
- cout << "nhap so phan tu x cua stack: ";
- cin >> x;
- for (int i = 1; i <= x; i++)
- {
- cout << "nhap phan tu: ";
- cin >> n;
- NODE* p = getnode(n);
- }
- }
- void output(STACK s)
- {
- NODE* p = s.pHead;
- while( p != NULL)
- {
- cout << p->data;
- p = p->pNext;
- }
- }
- int main()
- {
- STACK s;
- init(s);
- input(s);
- output(s);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement