stackUsingLI_parth

Run Settings
LanguageC++
Language Version
Run Command
// given an LI - // keep adding at the head for push // keep removing at the head for pop #include <iostream> using namespace std; class Node { public: int data; Node* next; Node (int data) { this->data = data; this->next = NULL; } }; class Stack { public: Node* linkedList = new Node(-1); void push(Node* A); int pop(); void display(); }; void Stack::push(Node* A) { A->next = linkedList; linkedList = A; } int Stack::pop() { int elementToBeDeleted = linkedList->data; if(elementToBeDeleted == -1) { cout << "Empty Stack!"; return -1; } linkedList = linkedList->next; return elementToBeDeleted; } void Stack::display() { Node* iterator = linkedList; while(iterator->data != -1) { cout << iterator->data << " "; iterator = iterator->next; } cout << endl; } int main() { Node* node1 = new Node(10); Node* node2 = new Node(20); Node* node3 = new Node(30); Stack myStack; myStack.push(node1); myStack.display(); myStack.push(node2); myStack.display(); myStack.push(node3); myStack.display(); int deletedElement1 = myStack.pop(); cout << "deleted element: " << deletedElement1 << endl; myStack.display(); int deletedElement2 = myStack.pop(); cout << "deleted element: " << deletedElement2 << endl; myStack.display(); int deletedElement3 = myStack.pop(); cout << "deleted element: " << deletedElement3 << endl; myStack.display(); int deletedElement4 = myStack.pop(); myStack.display(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines