Respond to the discussions below with 150 words or more.
Abstract data types (ADTs) exist only conceptually, and do not have any concrete existence in a language. Their purpose is to define behavior and state management (Abstract data type, 2021). Queues are an example of an ADT. General purpose data structures are a class level implementation of the abstract data type that is a collection of data values, their relationships, and the operations that can be applied to said data (Data structure, 2021). These do exist in the form of code. Data types are a concrete instance of a class in the form of defined class objects. To put this into simpler terms, it is an attribute of data which tells the computer how the data is intended to be used (Data type, 2021). An integer is an example of a common data type. Each one of these terms is defined differently, but they all work together. Abstract data types define operations, general purpose data structures implement said operations, and data types classify data by values and operations. If a data type cannot specify any sort of concrete implementation, then it is an abstract data type. Data structures are an efficient way to store said data. Examples of data structures include Linked Lists. Let’s take a closer look at the ADT and data structure examples: queues and linked lists. A queue is an interface, which means that it needs a concrete class for declaration (GeeksforGeeks, 2020). This is what makes a queue an abstract data type. One of the most common classes that queues use to declare data is a linked list. A linked list is the implementation of a linear data structure where the elements are linked using pointers and addresses (GeeksforGeeks, 2021). Queues do not have concrete implementation and linked lists do. So, while a Linked List can act as the physical implementation of a queue, a queue must rely on a data structure for implementation. The distinction may seem subtle at first, but the difference is important.