Related questions
C++ code
Stack Implementation using Variable-sized Dynamic Arrays
2. Stack Implementation using Linked Lists
3. The applications of Stacks
1. Implement a template-based stack using a variable-sized dynamic array. When the array gets
full, double its size before insertion of new elements. When array contains data lesser than
33% of its size, reduce its size to half. The required member methods are:
T* arr: array containing data elements of stack
int capacity: stores the capacity of stack.
int getCout(): returns total elements stored in the stack.
bool isEmpty(): returns true if the stack is empty else false.
bool isFull(): returns true if the stack is full.
bool top(): returns, but does not delete, the topmost element from the stack via the
parameter passed by reference, and returns true via the return statement. If there is no
element, it returns false via the return statement.
bool pop(): deletes the top most element from the stack and returns true via the return
statement. If there is no element, it returns false.
bool push(T const& e): pushes the element "e" on top of the stack if there is some space
available, and returns true via the return statement. Otherwise, If there is no capacity in the
stack than call resize function to increase the capacity of stack.
void reSize() This function will double the size of stack.
Optional (This function should also reduce the size of stack by half if the count of elements
is less than 25% of the total capacity).
2. Implement a template-based stack using linked list. Maintain the head pointer in the stack
class. The required members and methods are:
int size(): returns total elements stored in the stack
bool isEmpty(): returns true if the stack is empty else false.
bool top(T& data): returns, but does not delete, the topmost element from the stack via
the parameter passed by reference, and returns true via the return statement. If there is no
element, it returns false.
bool pop(): deletes the top most element from the stack and returns true via the return
statement. If there is no element, it returns false.
void push(T const& e): pushes the element "e" on top of the stack.
(optional) ReverseString (String s): this method should reverse the parameter string.
3. Given an expression containing opening and closing braces, brackets, and parentheses;
implement a global function "isBalanced" to check whether the given expression is a
balanced expression or not, using your stack implementation. For example, {[{}{}]}[()], {{}{}},
and []{}() are balanced expressions, but {()}[) and {(}) are not balanced. In your main function
test your function using the given examples.
bool isBalanced(string exp)
Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 2 images
- Given: typedef struct point2d {double x;double y;}Point2D; typedef struct pt2link { Point2D* payload; Struct pt2link* next; } PtLink, *pPtLink Writting C code to: a. Create a stack ADT module to manage Point2D data. The module should handle stack creation, push, pop, peek, reporting the stack contents and stack destruct b. Create a queue ADT module to manage Point2D data. The module should handle queue creation, enqueuing, dequeuing, peek (look at the next value to be dequeued), reporting the queue contents and queue destructarrow_forwardQ2: Stack stores elements in an ordered list and allows insertions and deletions at one end.The elements in this stack are stored in an array. If the array is full, the bottom item is dropped from the stack. In practice, this would be equivalent to overwriting that entry in the array. And if top method is called then it should return the element that was entered recently Please do it in C++ and use stack class(header file), not premade functionarrow_forward1)Write a Java program which stores three values by using singly linked list.- Node class1. stuID, stuName, stuScore, //data fields2. constructor3. update and accessor methods- Singly linked list class which must has following methods:1. head, tail, size// data fields2. constructor3. update and accessor methodsa. getSize() //Returns the number of elements in the list.b. isEmpty( ) //Returns true if the list is empty, and false otherwise.c. getFirstStuID( ), getStuName( ), getFirstStuScore( )d. addFirst(stuID, stuName, stuScore)e. addLast(stuID, stuName, stuScore)f. removeFirst ( ) //Removes and returns the first element of the list.g. displayList( ) //Displays all elements of the list by traversing the linked list.- Test class – initialize a singly linked list instance. Test all methods of singly linked list class. 2. Write a Java program which stores three values by using doubly linked list.- Node class4. stuID, stuName, stuScore, //data fields5. constructor6. update and...arrow_forward
- in c++arrow_forwardExplain the differences between a statically allocated array, a dynamically allocated array, and a linked list.arrow_forwardAssume class StackType has been defined to implement a stack data structure as discussed in your textbook (you may also use the stack data structure defined in the C++ STL). Write a function that takes a string parameter and determines whether the string contains balanced parentheses. That is, for each left parenthesis (if there is any) there is exactly one matching right parenthesis later in the string and every right parenthesis is preceded by exactly one matching left parenthesis earlier in the string. e.g. abc(c(x)d(e))jh is balanced whereas abc)cd(e)(jh is not. The function algorithm must use a stack data structure to determine whether the string parameter satisfies the condition described above. Edit Format Table 12pt v Paragraph v |BIU A v ev T? WP O words ....arrow_forward
- #include<bits/stdc++.h>using namespace std;#define MAX 1000 //Maximum size of stack class Stack{ int top;// to store top of stack public: int elements[MAX]; //Integer array to store elements Stack(){ //class constructor for initialization top=-1; } bool push(int x) { if(top>=(MAX-1)) //Condition for top when stack because full { cout<<"Stack is full\n"; return false; } else { ++top; //Increasing top value elements[top]=x; //storing it to element in to stack return true; }}int pop(){ if(top<0)// Condition for top when stack is empty { cout<<"stack is empty\n"; return INT_MIN; } else { int x=elements[top--];//poping out the element for stack by decreasing to element return x; }}int display(){if(top<0)//Condition for top when stack is empty { cout<<"Stack is...arrow_forwardProblem overview As you may already know from earlier courses, integer values in C++ (as well as other programming languages) are limited by the number of bits used to represent these data. For instance, a 64-bit unsigned integer has the maximum value of 2^64 - 1 or 18446744073709551615. One method of representing integers of arbitrary length, which was covered last spring, is a a linked list data structure such that that a node in the linked list corresponds to a single digit in the integer. For instance, the number 123 can be stored as linked-list that could look like this: [ 3 ] -> [ 2 ] -> [ 1 ] -> NULLNote that the first (or head) node in this list contains the least significant digit (in this case 3), while the last node contains the most significant digit (1). For this problem, you are to read in pairs of arbitrary length integers and produce correct output as outlined below. InspirationNote, this problem is inspired by Problem 8.19 from Elements of Programming...arrow_forwardSimple JAVA linkedlist code implementation please help and complete any part you can - Without using the java collections interface (ie do not import java.util.List,LinkedList, Stack, Queue...)- Create an implementation of LinkedList interface- For the implementation create a tester to verify the implementation of thatdata structure performs as expected Build Bus Route – Linked List- Your task is to:o Implement the LinkedList interface (fill out the implementation shell)o Put your implementation through its paces by exercising each of themethods in the test harnesso Create a client (a class with a main) ‘BusClient’ which builds a busroute by performing the following operations on your linked list:o§ Create (insert) 4 stations§ List the stations§ Check if a station is in the list (print result)• Check for a station that exists, and onethat doesn’t§ Remove a station§ List the stations§ Add a station before another station§ List the stations§ Add a station after another station§ Print the...arrow_forward
- Text book imageComputer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONText book imageComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceText book imageNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Text book imageConcepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningText book imagePrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationText book imageSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY