1. Engineering
  2. Computer Science
  3. in java please and thank you...

Question: in java please and thank you...

Question details

In Java please and thank you

Objective: The aim of this assignment is to obtain hands on experience in implementing ADTs, and understanding the theoretical concepts seen in class on algorithm design and analysis. At the end of this assignment, students will know how to implement Stacks, Queues and Linked Lists, how to analyze the complexity of their operations, and work on rele vant applications Tasks: 1. Using your favorite programming language, implement a singly inked list with the following 2. Write and implement a recursive algorithm that showsall the elements of the single linked list, 3. Implement a stack on the singly linked list with the operations of Lab Assignmen. Hint: Using the operations: addFirst, removeFirst, addLast, removeLast, getFirst, getLast, size starting from the head. Explain the worst-case running time of your algorithm same Stack class you implemented, change the array to an object of the singly linked list class. The functionality of push and pop is now based on the methods of the linked list class 4. Practical application1 Balanced parentheses (a) Implement the balanced-bracket checker algorithm of Lab Assignment using the singly linked list implementation of the stack (b) Explain how your algorithm checks for balanced parenthesis in O(n), when the input is a string of length n 5. Implement a queue on the singly linked list of Item #1, with the following operations: enqueue, dequeue, front, size, is Empty. Note: both operations, enqueue and dequeue, must run in o(1) The merge problem. Given two sorted lists of integers, A and B, the aim is to merge A and B, producing a sorted list S (a) Write an algorithm that stores A and B in two queues (one in each queue), merges A and B, and outputs a sorted list S in O(n) worst-case time. Note: your algorithm must use queues for A, B and S (b) Implement your algorithm in your favorite programming language (c) Explain how your algorithm runs in O(n), where n is the length of S (d) [2 bonus marks] Run your algorithm on randomly generated sorted lists A and B of different sizes: 100, 200, 300, ..., 2000 and record the CPU time taken by the algorithm. Create a table (or a plot) and explain how your algorithm runs in O(n) by inspecting your results

Solution by an expert tutor
Blurred Solution
This question has been solved
Subscribe to see this solution