Data Structures
Data structures are specific ways of organizing, storing, and accessing data in memory — such as arrays, linked lists, trees, and hash tables — chosen to optimize particular operations like search, insertion, or ordering.
457 resources across 4 libraries
Glossary Terms(13)
Java
Java is a general-purpose, object-oriented programming language designed to run on any device via the Java Virtual Machine (JVM), following the "write once, ru…
R
R is a programming language and environment purpose-built for statistical computing, data analysis, and graphical visualization, widely used in academia, resea…
Coding Interview
A coding interview is a technical assessment in which a candidate solves algorithmic or data-structure problems, usually under time pressure and while explaini…
Algorithms
An algorithm is a finite, well-defined sequence of steps used to solve a problem or perform a computation, forming the logical foundation of all software.
Data Structures
Data structures are specific ways of organizing, storing, and accessing data in memory — such as arrays, linked lists, trees, and hash tables — chosen to optim…
DBMS
A Database Management System (DBMS) is software that provides an interface for creating, storing, querying, and managing data in databases, handling concerns l…
C++
C++ is a general-purpose, compiled programming language that extends C with object-oriented programming, templates, and higher-level abstractions while retaini…
Big O Notation
Big O notation is a mathematical notation used in computer science to describe how an algorithm's running time or memory usage grows as the size of its input i…
Linked List
A linked list is a linear data structure made up of nodes, where each node stores a value and a reference (pointer) to the next node in the sequence, allowing…
Binary Search Tree
A binary search tree (BST) is a node-based data structure in which each node has at most two children, and every node's left subtree contains only values less…
Hash Table
A hash table (or hash map) is a data structure that maps keys to values using a hash function to compute an index into an array of buckets, giving average O(1)…
Sorting Algorithm
A sorting algorithm is a procedure that rearranges the elements of a list or array into a defined order, typically ascending or descending, and is one of the m…
Graph Algorithm
A graph algorithm is a procedure that operates on a graph — a set of nodes (vertices) connected by edges — to solve problems such as finding shortest paths, de…
Study Notes(152)
Merged Resource Dictionaries
Learn how MergedDictionaries lets you split XAML resources across multiple files, control precedence, and reference them across assemblies.
Resource Dictionaries in XAML
Learn how ResourceDictionary stores reusable brushes, styles, and templates in XAML, and how StaticResource and DynamicResource look them up.
Resource Dictionaries
How WPF ResourceDictionary objects store reusable styles, brushes, and templates, and how StaticResource, DynamicResource, and merged dictionaries work togethe…
Visual Tree vs Logical Tree
Understand the difference between WPF's logical tree (the XAML element hierarchy) and its visual tree (the fully expanded rendering hierarchy), and why the dis…
Expression Trees Explained
Learn what expression trees are, how the compiler builds them from lambdas, and how providers like EF Core walk them to generate SQL.
Microsoft Graph API for Teams
Learn how to read and write Teams data — teams, channels, messages, and members — through the unified Microsoft Graph REST API.
Domains, Trees, and Forests
How Active Directory organizes multiple domains into trees and forests to model organizational and trust boundaries.
Aggregate Report and Graphs
Learn to read JMeter's Aggregate Report percentile columns, understand the limits of GUI graph listeners, and generate CI-friendly HTML dashboard reports from…
Listeners: View Results Tree and Summary Report
Understand JMeter's two most-used listeners — View Results Tree for per-sample debugging and Summary Report for aggregate metrics — and how to use each without…
Lists and Libraries
Learn how SharePoint Lists and Document Libraries store structured data and files, and how to configure columns, views, and thresholds effectively.
SharePoint REST and Graph API
Two complementary APIs — the classic SharePoint REST API and the modern Microsoft Graph API — let developers read and write SharePoint data programmatically.
Array Operations and Slicing
Whole-array arithmetic, array sections, and the WHERE/FORALL constructs that let Fortran express vectorized operations without explicit loops.
Arrays in Fortran
Declaring, indexing, sectioning, and efficiently looping over Fortran's column-major arrays.
Multidimensional Arrays
How Fortran declares, stores, and loops over arrays with two or more dimensions, and why column-major order shapes fast code.
Pointers and Allocatable Arrays
Understand Fortran's two mechanisms for dynamic memory, the ALLOCATABLE attribute for owned, automatically-managed arrays, and POINTER for aliasing and flexibl…
Arrays in Pascal
Learn how Pascal's fixed-size, strongly-typed arrays work, from simple index ranges to multidimensional matrices.
Lists, Sets, and Maps
Master Apex's three core collection types — ordered Lists, unique Sets, and key-value Maps — and when to use each for bulk-safe, governor-limit-friendly code.
Arrays in AWK
Understand AWK's associative arrays — string-keyed, dynamically growing collections used for counting, grouping, and lookups — plus multi-dimensional emulation…
Arrays in Arduino
Store and manage collections of related values using arrays, and combine them with loops to control multiple pins efficiently.
Arrays and Mappings
Arrays are ordered, iterable collections; mappings are hash-based key-value stores with O(1) lookup. Knowing their capabilities, limits, and gas costs is essen…
Arrays in VBA
Store and process many values under one name with fixed and dynamic arrays, ReDim, and fast range-to-array techniques.
Dictionaries and Collections in VBA
Comparing VBA's built-in Collection with the Scripting.Dictionary for storing keyed data, and choosing the right one for lookups, de-duplication, and counting.
Arrays and Dictionaries in Tcl
Understand Tcl's associative arrays and the modern dict command, and learn when to reach for each key-value structure.
Tcl Data Types and Lists
How Tcl's 'everything is a string' model supports lists, arrays, and dictionaries, and the core commands for building and manipulating them.
Showing 24 of 152.
Cheat Sheets(64)
NumPy Cheat Sheet
NumPy arrays, operations, broadcasting, and linear algebra essentials.
Java Cheat Sheet
Core Java syntax, data types, collections, generics, and streams for writing robust object-oriented JVM applications.
C Cheat Sheet
Fundamental C syntax including pointers, arrays, structs, memory allocation, and standard library functions for systems programming.
C# Cheat Sheet
Core C# syntax, LINQ queries, generic collections, async/await patterns, and object-oriented features for building .NET applications.
PHP Cheat Sheet
PHP syntax, associative arrays, superglobals, and object-oriented features for server-side web development and dynamic scripting.
Scala Cheat Sheet
Scala syntax, case classes, pattern matching, immutable collections, and functional programming features that run on the JVM.
Perl Cheat Sheet
Perl syntax, regular expressions, arrays, hashes, and text-processing idioms for scripting and command-line pattern-matching tasks.
Dart Cheat Sheet
Dart syntax, sound null safety, async programming, and collection methods used to build Flutter applications.
Clojure Cheat Sheet
Clojure syntax, immutable data structures, persistent collections, and functional idioms for modern concurrent JVM programming.
Julia Cheat Sheet
Essential Julia syntax for scientific computing, including arrays, broadcasting, multiple dispatch, and the type system.
Bash Scripting Cheat Sheet
Practical Bash scripting reference covering variables, conditionals, loops, string/array handling, and common builtins.
VB.NET Cheat Sheet
Core VB.NET syntax covering variables, control flow, classes and inheritance, collections, and common data types.
x86 Assembly Cheat Sheet
Key x86/x86-64 registers, NASM instruction syntax, control flow, and the stack/calling convention for low-level programming.
Groovy Cheat Sheet
Practical Groovy syntax covering closures, collections, GDK operators, and classes for the JVM dynamic language.
Crystal Cheat Sheet
Core Crystal syntax covering static typing, classes, collections, and blocks for a Ruby-like compiled language.
Racket Cheat Sheet
Fundamental Racket syntax covering definitions, higher-order functions, list operations, and pattern matching with match.
Prolog Cheat Sheet
Core Prolog concepts covering facts, rules, queries, list operations, and built-in predicates for logic programming.
Fortran Cheat Sheet
Core modern Fortran syntax covering variable declarations, control flow, arrays, and procedures for scientific and numerical computing.
Scheme Cheat Sheet
Foundational Scheme syntax including define, let forms, list operations, and recursion for this minimalist Lisp dialect.
Common Lisp Cheat Sheet
Essential Common Lisp syntax covering function and variable definitions, control flow, list operations, formatted output, and macros.
OCaml Cheat Sheet
Practical OCaml syntax covering let bindings, pattern matching, lists, and algebraic data types like records, variants, and options.
Smalltalk Cheat Sheet
Foundational Smalltalk syntax covering message sends, class definitions, block-based conditionals and loops, and common collection operations.
Forth Cheat Sheet
Core Forth stack-manipulation words, custom word definitions, conditionals, and loops for this minimalist stack-based language.
APL Cheat Sheet
Core APL array-language notation covering arithmetic, indexing, custom dfns, and reduction/scan operators for concise array programming.
Showing 24 of 64.
Interview Questions(228)
Clustered vs Non-Clustered Index: What is the Difference?
A clustered index determines the physical order in which table rows are stored on disk, while a non-clustered index is a separate structure that stores pointer…
How Does a B-Tree Index Work Internally?
A B-tree index is a balanced, sorted tree of fixed-size nodes where every leaf sits at the same depth, letting the database find any key in O(log n) disk reads…
Hash Index vs B-Tree Index: What is the Difference?
A hash index maps each key to a bucket via a hash function, giving O(1) average-case exact-match lookups but no support for range queries or ordering, while a…
CTE vs Temporary Table: What is the Difference?
A CTE is a named result set scoped to a single statement with no storage or indexing of its own, while a temporary table is a real, physically stored table tha…
What Data Structures Does Redis Support and When to Use Them?
Redis is an in-memory key-value store whose values can be rich data structures — strings, hashes, lists, sets, sorted sets, and streams — each offering differe…
What is a Bloom Filter and How Do Databases Use It?
A Bloom filter is a compact, probabilistic data structure that tests whether an element is possibly in a set or definitely not in it, letting a database quickl…
What is a B-Epsilon Tree and How Does it Differ from a B-Tree?
A B-epsilon tree (Bε-tree) is a write-optimized variant of a B-tree that attaches a message buffer to each internal node, so inserts, updates, and deletes are…
What is Big O Notation?
Big O notation describes how an algorithm’s running time or memory usage grows as the input size grows, focusing on the dominant term and ignoring constant fac…
Difference Between Array and Linked List
An array stores elements in contiguous memory with fixed-size, index-based access in O(1), while a linked list stores elements as nodes scattered in memory, ea…
What is a Hash Table?
A hash table is a data structure that maps keys to values using a hash function to compute an index into an array of buckets, giving average O(1) insertion, lo…
What is Recursion?
Recursion is a technique where a function solves a problem by calling itself on a smaller instance of the same problem, until it reaches a base case that stops…
Difference Between Stack and Queue
A stack is a LIFO (Last In, First Out) structure where the last element added is the first removed, while a queue is a FIFO (First In, First Out) structure whe…
What is a Binary Search Tree (BST)?
A binary search tree is a binary tree where every node’s left subtree holds smaller keys and its right subtree holds larger keys, enabling search, insertion, a…
What is Dynamic Programming?
Dynamic programming is a technique for solving problems by breaking them into overlapping subproblems and storing each subproblem’s result so it is computed on…
What is a Heap?
A heap is a complete binary tree stored in an array that satisfies the heap property — in a min-heap every parent is smaller than or equal to its children, giv…
BFS vs DFS: What is the Difference?
BFS (breadth-first search) explores a graph level by level using a queue, while DFS (depth-first search) explores as deep as possible along one path before bac…
What is a Trie?
A trie, or prefix tree, is a tree-based data structure that stores strings character by character along shared paths, letting you search, insert, and check pre…
Merge Sort vs Quick Sort: What is the Difference?
Merge sort splits an array in half, recursively sorts both halves, then merges them, guaranteeing O(n log n) time and stability at the cost of O(n) extra space…
What is a Graph?
A graph is a data structure made of nodes (vertices) connected by edges, used to model relationships and connections such as networks, maps, or dependencies, a…
What is a Doubly Linked List?
A doubly linked list is a sequence of nodes where each node stores a value plus pointers to both the next and the previous node, allowing traversal in either d…
What is Binary Search?
Binary search is an algorithm that finds a target value in a sorted collection by repeatedly halving the search range, comparing the target to the middle eleme…
What is a Priority Queue?
A priority queue is an abstract data type where each element has a priority, and the element with the highest (or lowest) priority is always removed first, typ…
What is the Difference Between Time and Space Complexity?
Time complexity measures how the number of operations an algorithm performs grows with input size, while space complexity measures how the memory it needs grow…
What is a Balanced Tree?
A balanced tree is a binary tree structured so the height difference between subtrees at every node stays bounded (typically by a constant like 1), keeping the…
Showing 24 of 228.