and answers
Array✔✔A data structure that stores an ordered list of items, with each item is
directly accessible by a positional index.
Linked List✔✔A data structure that stores ordered list of items in nodes, where each
node stores data and has a pointer to the next node.
Bianary Search Tree✔✔A data structure in which each node stores data and has up
to two children, known as a left child and a right child.
Hash Table✔✔A data structure that stores unordered items by mapping (or hashing)
each item to a location in an array (or vector).
Abstract Data Type (ADT)✔✔A data type described by predefined user operations,
such as "insert data at rear," without indicating how each operation is implemented.
List✔✔An ADT for holding ordered data. Dups ok
Sequence type: A mutable container with ordered elements.
Underlying data structures: Array, linked list
Array in Java✔✔generic class that supports different data types. declared as follows,
where T is the data type.
Tuple✔✔Sequence type: An immutable container with ordered elements.
Stack✔✔An ADT in which items are only inserted on or removed from the top of a
stack.
*Last-in First-Out
Underlying data structures: Linked list
Push(stack, x), pop(stack), peek(stack), IsEmpty(stack), GetLength(stack)
*Pop & peek should not be used on a empty stack.
Stack operations✔✔Example starting with stack: 99, 77 (top is 99).
Push(stack, x)
Inserts x on top of stack
Push(stack, 44). Stack: 44, 99, 77
Pop(stack)
Returns and removes item at top of stack
Pop(stack) returns: 99. Stack: 77
, Peek(stack)
Returns but does not remove item at top of stack
Peek(stack) returns 99. Stack still: 99, 77
IsEmpty(stack)
Returns true if stack has no items
IsEmpty(stack) returns false.
GetLength(stack)
Returns the number of items in the stack
GetLength(stack) returns 2.
Queue✔✔An ADT in which items are inserted at the end of the queue and removed
from the front of the queue.
*first-in first-out ADT.
Underlying data structures: Linked list, Array, Vector
The Queue class' push() method uses the LinkedList append() method to insert
elements in a queue.
Both the Stack and Queue pop() methods operate exactly the same by removing the
head element and returning the removed element.
Linked List✔✔A linear data structure, much like an array, that consists of nodes,
where each node contains data as well as a link to the next node, but that does not
use contiguous memory.
Head and tail node
The LinkedList class implements the list data structure and contains two data
members, head and tail, which are assigned to nodes once the list is populated.
Initially the list has no nodes, so both data members are initially assigned with None.
If the node has no next node, the next data member is assigned with None, the
Python term signifying the absence of a value.
Deque✔✔Short for double-ended queue- an ADT in which items can be inserted and
removed at both the front and back.
Underlying data structures: Linked list
Bag✔✔An ADT for storing items in which the order does not matter and duplicate
items are allowed.
Underlying data structures: Linked list, Array
Set✔✔An ADT for a collection of distinct items. (no dups!)