## Stack

A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle.

A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle.

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

Given a binary tree, return the preorder traversal of its nodesâ€™ values.

Given a binary tree, return the inorder traversal of its nodes' values. (Both recursive and iterative solutions)

Implement the following operations of a queue using stacks.

Implement the following operations of a stack using queues: push(x), poll(), empty(), peek().

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST

Implement a basic calculator to evaluate a simple expression string.

Implement a basic calculator to evaluate a simple expression string with '+','-','*','/'.