1/54
Practice flashcards covering fundamental concepts in data structures and algorithms.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
A specialized format for organizing, processing, retrieving, and storing data.
Data Structure
A kind of data structure that has homogeneous elements arranged in a linear sequence.
Linear Data Structure
A sequence of finite items of the same data type stored contiguously in memory.
Array
A sequence of nodes, each containing data and links (pointers) to the next node.
Linked List
A linked list where each node, except the last, contains a single pointer to the next element.
Singly Linked List
A linked list where every node, except the first and last, contains pointers to both its successor and predecessor.
Doubly Linked List
A linear data structure that follows a LIFO (Last In, First Out) order.
Stack
A stack operation that adds an element on top of the stack.
Push
A stack operation that removes an element from the top of the stack.
Pop
An operation to get the top data element of the stack without removing it.
Peek
A method to check if the stack is full.
isFull
A method to check if the stack is empty.
isEmpty
A mathematical notation in which every operator follows all of its operands.
Reverse Polish Notation (RPN)
Also known as Polish Notation; the operation symbol is written first followed by operands.
Prefix Notation
Also known as Suffix or Reverse Polish Notation; operands are written first, followed by the operation symbol.
Postfix Notation
A notation where the operation symbol is written between the operands.
Suffix Notation
A data structure where adding an item is done at the rear and deleting at the front, following FIFO (First In, First Out).
Queue
An operation to add an element to a queue.
Enqueue
An operation to remove an element from a queue.
Dequeue
Data structures that do not organize data sequentially.
Non-linear Data Structure
A data structure with several levels arranged in a tree-like form.
Hierarchical Data Structure
A connected acyclic graph, where the number of edges is always one less than the number of vertices.
Tree
A tree data structure in which each node has at most two children.
Binary Tree
A binary tree where each node contains elements lesser on the left and greater on the right.
Binary Search Tree
A binary search tree with a balance factor that ensures the height difference between left and right subtrees is not more than one.
AVL Tree
An almost complete tree that follows the heap property with parent nodes located in a specific order.
Heap Tree
A self-balancing tree that maintains sorted data for efficient searching, inserting, and deleting.
B-Tree
The method of converting string data into a shorter fixed-length key.
Hashing
A graph where edges have a direction.
Directed Graph
A graph where edges have no direction.
Undirected Graph
A graph where every node is connected to every other node.
Complete Graph
A graph with many edges relative to the number of nodes.
Dense Graph
A graph with few edges compared to its number of nodes.
Sparse Graph
A graph where edges have weights representing costs or distances.
Weighted Graph
A sequence of unambiguous instructions for solving a problem.
Algorithm
The procedure involving understanding, assessing capabilities, and selecting appropriate methods.
Steps in Problem Solving
A design technique involving exhaustive searching through all options.
Brute Force
An algorithm design paradigm that builds a solution piece by piece, choosing the next piece that offers the most immediate benefit.
Greedy Method
A technique that breaks a problem into smaller subproblems, solves each subproblem recursively, and combines their solutions.
Divide and Conquer
An optimization technique that solves complex problems by breaking them down into simpler subproblems.
Dynamic Programming
An algorithm design approach that incrementally builds candidates to the solutions and abandons a candidate as soon as it is determined not to be a valid solution.
Backtracking
A method for optimizing a linear objective function, subject to linear equality and inequality constraints.
Linear Programming
A method of specifying algorithms using structured text.
Pseudocode
A visual representation of steps in an algorithm.
Flowcharts
The property of an algorithm that ensures it will terminate after a finite number of steps.
Finiteness
The property of an algorithm that each step is rigorously and unambiguously specified.
Definiteness
The characteristic of each step in an algorithm being basic and essential.
Effectiveness
The process of rearranging items in a list in a specific order.
Sorting
The problem of finding a specific value within a set.
Searching
Managing sequences of characters, including searching and sorting operations.
String Processing
The process of searching for a substring within a larger string.
String Matching
Problems related to the analysis and manipulation of graph structures.
Graph Problems
Problems that involve finding arrangements or selections from a set.
Combinatorial Problems
Problems that involve geometric entities like points or lines.
Geometric Problems
Problems involving mathematical objects that require continuous calculations.
Numerical Problems