└── Linked_List_Implementation_Of_StackADT.c++ /Linked_List_Implementation_Of_StackADT.c++: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | //using namespace std; class node 6 | { 7 | public: 8 | class node *next; int data; 9 | }; 10 | 11 | 12 | class stack : public node 13 | { 14 | node *head; int tos; public: 15 | stack() 16 | { 17 | tos=-1; 18 | } 19 | void push(int x) 20 | { 21 | if (tos < 0 ) 22 | { 23 | head =new node; 24 | head->next=NULL; head->data=x; tos ++; 25 | } 26 | else 27 | { 28 | node *temp,*temp1; temp=head; if(tos >= 4) 29 | { 30 | cout <<"stack over flow"; return; 31 | } 32 | tos++; 33 | while(temp->next != NULL) temp=temp->next; temp1=new node; 34 | temp->next=temp1; temp1->next=NULL; temp1->data=x; 35 | } 36 | } 37 | void display() 38 | { 39 | node *temp; temp=head; if (tos < 0) 40 | { 41 | cout <<" stack under flow"; return; 42 | } 43 | 44 | 45 | while(temp != NULL) 46 | { 47 | cout <data<< " "; temp=temp->next; 48 | } 49 | } 50 | void pop() 51 | { 52 | node *temp; temp=head; if( tos < 0 ) 53 | { 54 | cout <<"stack under flow"; return; 55 | } 56 | tos--; 57 | while(temp->next->next!=NULL) 58 | { 59 | temp=temp->next; 60 | } 61 | temp->next=NULL; 62 | } 63 | }; 64 | main() 65 | { 66 | Clrscr(); stack s1; int ch; while(1) 67 | { 68 | cout <<"\n1.PUSH\n2.POP\n3.DISPLAY\n4.EXIT\n enter ur choice:"; cin >> ch; switch(ch) 69 | { 70 | case 1: cout <<"\n enter a element"; cin >> ch; 71 | s1.push(ch); break; 72 | case 2: s1.pop();break; 73 | case 3: s1.display(); break; 74 | case 4: exit(0); 75 | } 76 | } 77 | 78 | 79 | return (0); 80 | } 81 | 82 | --------------------------------------------------------------------------------