Question 1: Balancing Parenthesis
For this task, write a function that only uses one or more stacks to check for proper balance of parenthesis on mathematical equations. Here are some sample equations and the expected output of your program:
(5 + 3) * 1 -> True
(2 / 2) + (1 / 5) -> True
(4 * (3 + 2)) + 1 -> True
(3 + 3 – 1 -> False
(3 + 2/(1 /5) -> False
8 * 8/(2 + 5)) -> False
Question 2: Palindrome Checker
A palindrome is a string that reads the same forwards as backward (e.g .racecar). Using only Stacks, Queues, and a limited number of local variables, write a function that determines whether or not a given string is a palindrome.
Question 3: A Doubly-Linked List
A doubly linked list is one whose internal list nodes have pointers to both the next and previous elements in the list sequence. Using the LinkedList and ListNode classes as a starting point, create a new doubly-linked list data structure.