
Use C++ Programming Language.
Objective
Define a circular buffer data structure and test it.
Problem Description:
A circular buffer (also called a circular queue) is circular list of nodes where data items are added on one end of the buffer and removed from the other end. Because the nodes form a circular list, the list has no end or beginning: the tail node points to the head node, creating a ring of nodes. You may think of the nodes as containers or slots that are all initially empty but can be assigned a value in their data field info. Every time a new data item is inserted (inserting to a buffer is often referred as Writing), one slot is filled and the buffer has one less empty slot. Every time a data item is removed (referred to as Reading), the buffer has one more empty slot. Since the list has no beginning and no end, a pointer (writeIndex) is used to mark the next empty slot to write to and a second pointer (readIndex) is used to mark the next node to read from. The readIndex/writeIndex must be properly updated with each read/write operation. The read and write operations must also check the buffer status (empty/full) before reading/writing.
Define a class that that implements the circular buffer data structure as described above:
Create a program to test your implementation of class circularBuffer. Use instructions listed in the comments in file testCircularBuffer.cpp to test your implementation.
Recommendation: You should implement and test class circularBuffer incrementally: start by creating function stubs for all class methods, then implement and test each method one by one. Always start by implementing the class constructor.
Deliverables:
- In a text file, clearly indicate the list of functions of class circularBuffer you implemented successfully. Submit the text file.
- Submit a copy of your implementation of class cicularBuffer (cicularBuffer.h) and testCircularBuffer.cpp
- Submit screenshots of your program runs using the test procedure outlined in testCircularBuffer.cpp to prove your work.

Trending nowThis is a popular solution!
Step by stepSolved in 3 steps with 1 images

- please helparrow_forwardC++ Consider the following function as a property of a LinkedBag that contains a Doubly Linked List. Assume a Node has pointers prev and next, which can be read and changed with the standard get and set methods. Assume that the doubly linked list is: 1 <--> 2 <--> 3 <--> 4 <--> 5 <-->6 If you are uncertain what the above diagram depicts, it is a doubly linked list such that: The head of this doubly linked list is the node that contains the value 1. The tail of this doubly linked list is the node that contains the value 6. The 3rd node in this list contains the value 3. The contents of this list are the values 1 through 6 in sequential order. The following questions are regarding the linked list after after the test_function is run. A. The head of the list after the test_function is run contains the value: B. The tail of the list after the test_function is run contains the value: C. The 3rd node in the list after the test_function is run…arrow_forwardQ10 Please explain your answersarrow_forward
- Python Big-O Notation/Time Complexity Pls answer only if u know big-o Thanks! Item #3.arrow_forwarddef dotProduct(Vs): V1 #get first vector from Vs ......... V2 #get second vector from Vs #check if they are in the same length ......... if ......... ...... ... #complete as needed ......... for in ...... ... ......... . dp #dp: dot-product ......... #complete as needed #u = (-2 4 -2) and v = (-3 6 3) u = . .; #setup u an v as a numpy array V Vc = [. ., #test the function using u and v print (.) #print "Dot-product of vectors isarrow_forwardStructural Verification Structural verification is, in this case, validating that a data structure is formed according to its specification. For this lab you are given an essentially arbitrary specification, but you could think of this being used to verify a data structure produced by a program that must have certain properties in order to be used correctly. For example, a list must not be circular, or an image file might require a particular header describing its contents. You must implement this function, which examines a matrix and ensures that it adheres to the following specification: bool verify_matrix(int x, int y, int **matrix); This function accepts an X dimension, a Y dimension, and a matrix of y rows and x columns; although it is declared as int **, this is the same type of matrix as returned by parse_life() in PA1, and you should access it as a two-dimensional array. Note that it is stored in Y-major orientation; that is, matrix ranges from matrix[0][0] to matrix[y 1][x -…arrow_forward
- please answerarrow_forwardLanguage/Type: C++ binary trees pointers recursion Write a function named hasPath that interacts with a tree of BinaryTreeNode structures representing an unordered binary tree. The function accepts three parameters: a pointer to the root of the tree, and two integers start and end, and returns true if a path can be found in the tree from start down to end. In other words, both start and end must be element data values that are found in the tree, and end must be below start, in one of start's subtrees; otherwise the function returns false. If start and end are the same, you are simply checking whether a single node exists in the tree with that data value. If the tree is empty, your function should return false. For example, suppose a BinaryTreeNode pointer named tree points to the root of a tree storing the following elements. The table below shows the results of several various calls to your function: 67 88 52 1 21 16 99 45 Call Result Reason hasPath(tree, 67, 99) true path exists…arrow_forwardIt is possible to see the function's return address by issuing a set of instructions. It's important to remember that modifying the stack shouldn't prevent the process from returning to its caller.arrow_forward
- Computer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Concepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningPrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY





