record✔✔data structure that stores subitems, with a name associated with each
subitem
array✔✔a data structure that stores an ordered list of items, with each item is directly
accessible by a positional index
homogeneous data elements
linked list✔✔data structure that stores *ordered* list of items in nodes, where each
node stores data and has a pointer to the next node; can have multiple subitems
binary tree✔✔A data structure that consists of nodes, with one root node at the base
of the tree, and two nodes (left child and right child) extending from the root, and
from each child node
can have no children, single left or right, or both right and left
hash table✔✔data structure that stores *unordered* items by mapping (or hashing)
each item to a location in an array
max-heap✔✔a tree that maintains the simple property that a node's key is greater
than or equal to the node's childrens' keys
min-heap✔✔a tree that maintains the simple property that a node's key is less than
or equal to the node's childrens' keys
graph✔✔data structure for representing connections among items, and consists of
vertices connected by edges
vertice✔✔part of a graph the represents an item in a graph
edge✔✔part of a graph that represents a connection between to vertices in a graph
what is an advantage of a linked list over an array?✔✔when inserting a new item at
the beginning it causes no shift to the data
ADT (Abstract data Type)✔✔data type described by predefined user operations,
such as "insert data at rear", without indication how each operation is implemented
list✔✔ADT for holding ordered data
stack✔✔ADT which items are only inserted on or removed from the top of a stack
LIFO
, Queue✔✔ADT in which items are inserted at the end of the queue and removed
from the front of the queue
FIFO
deque ("deck")✔✔ADT in which items can be removed at both the front and back
Bag✔✔ADT for stroing items in which the order does not matter and duplicate items
are allowed
Set✔✔ADT for collection of distinct items
common underlying DS: Binary search tree, hash table
Priority Queue✔✔a queue in which the highest-priority elements are removed first;
within a priority value, the earliest arrival is removed first.
common underlying DS: heap
Dictionary (map)✔✔ADT that associates (or maps) keys with values
common underlying DS: has table, binary search tree
List, Bag✔✔ADTs with array, linked list as common underlying DS
Stack, Queue, Deque✔✔ADTs with linked list as their only common underlying DS
Peek✔✔ADT operation for a queue that returns but does not remove item at the
front of the queue
identity✔✔unique identifier that describes the object
//✔✔symbol for floored division
tuple✔✔behaves similar to a list but is immutable -- once created the els can not be
chagned
const array/list
for i in range(0)✔✔sets i to 0 during the first iteration of the for loop, i to 1 during the
second iteration, and finally i to 2 on the third iteration. The value within the
parentheses is not included in the generated sequence.
range(5, -6, -1)✔✔code for every int form 5 down to -5
range(10, 21, 2)✔✔code for every 2nd int from 10 to 20
polymorphism✔✔functional behavior depends on the argument types