๐Ÿ“š Programming Tutorial

Data Structures

A data structure is a specialized format for organizing, storing, and manipulating data on a computer. Data structures are designed to manage and arrange data in a way that enables efficient access and modification. They serve as the building blocks for algorithms and are critical for the design and implementation of software and databases.

Data Structure Tutorial Index

46 Topics

๐Ÿ“˜ Data Structures

๐Ÿ“˜

Introduction

Understand what data structures are, why they matter and their main types.

๐Ÿงฑ

Abstract data types

Learn how ADTs describe what a data structure does without defining how.

๐Ÿ“ Linear Data Structures

๐Ÿ”—

Linked List Introduction

Learn what a linked list is, its advantages over arrays and its limitations.

โžก๏ธ

Single Linked List

Learn singly linked list operations with algorithms and a C program.

๐Ÿ“š

Stacks using Array

Implement a stack using an array: push, pop, peek and a C program.

๐Ÿฅž

Stacks using linkedlist

Implement a stack using a linked list with a top pointer.

๐Ÿšถ

Queues using array

Implement a queue using an array: enqueue, dequeue and overflow checks.

โณ

Queues using linkedlist

Implement a queue using a linked list with a head pointer.

๐Ÿงฎ

Stack Applications

Explore function calls, recursion and expression notations using stacks.

๐Ÿ”„

Infix to Postfic Converstion

Convert infix expressions into postfix notation using a stack.

โœ…

Postfix Evaluation

Evaluate postfix expressions using an operand stack.

๐Ÿ“– Dictionaries

๐Ÿ“–

Introduction to Dictionaries

Learn the characteristics of dictionaries and the ways to implement them.

๐Ÿ“ƒ

Linear list representation

Represent a dictionary using a linear list.

๐Ÿชœ

Skip list representation

Learn how a skip list gives fast search, insertion and deletion in an ordered dictionary.

#๏ธโƒฃ Hash Table

#๏ธโƒฃ

Introduction Hash Table

Learn the basics of hash tables and hashing.

๐Ÿ”‘

Hash functions

Learn the properties of good hash functions and how keys map to indexes.

๐Ÿ’ฅ

Collision Resolution

Understand collisions and the techniques used to resolve them.

โ›“๏ธ

Separate chaining

Resolve collisions by keeping a chain of items at each slot.

๐Ÿ“

Open addressing

Learn linear probing, quadratic probing and double hashing.

โ™ป๏ธ

Rehashing

Learn how a hash table is resized and its keys re-inserted.

๐Ÿ“ˆ

Extendible hashing

Understand dynamic hashing that grows by splitting buckets.

๐ŸŒณ Trees

๐ŸŒณ

Introduction to Tree

Learn tree terminology and the basic concepts of hierarchical data.

๐ŸŒฒ

Binary trees Representation

Learn how binary trees are represented in memory.

๐Ÿงญ

Binary tree traversals

Learn inorder, preorder and postorder traversals of a binary tree.

๐Ÿ”

Binary Search Tree

Learn searching, insertion and deletion in a binary search tree.

๐Ÿ”ด

Red Black Tree

Learn the properties and balancing rules of red-black trees.

๐ŸŒ€

Splay Tree

Learn how splaying moves recently accessed nodes to the root.

๐Ÿ—ƒ๏ธ

B Tree

Understand multiway search trees used for disk-based storage.

๐Ÿ“Š

Comparison of Trees

Compare the different tree structures side by side.

๐Ÿ•ธ๏ธ Graphs

๐Ÿ•ธ๏ธ

Introduction to Graph

Learn graph terminology, types and basic concepts.

๐Ÿ—บ๏ธ

Graph Representation

Learn adjacency matrix and adjacency list representations.

๐Ÿ•ณ๏ธ

Depth-First Search

Traverse a graph as deep as possible using a stack, then backtrack.

โ†•๏ธ Sorting

โšก

Quick Sort

Learn divide-and-conquer sorting using a pivot and partitioning.

๐Ÿ”๏ธ

Heap Sort

Sort using a binary heap with max-heap and min-heap.

๐Ÿ”Ž Pattern Matching

๐Ÿ”Ž

Introduction to pattern Matching

Learn the basic concepts and common pattern matching algorithms.

๐Ÿ’ช

Brute force Pattern Matching

Check the pattern at every position of the text.

๐Ÿง 

Boyerโ€“Moore Pattern Matching

Use the bad character table to skip comparisons while matching.

๐ŸŽฏ

KMP Pattern Matching

Use the failure (LPS) array to avoid re-comparing characters.

๐Ÿ”ค Tries

๐Ÿ”ค

Introduction to Tries

Learn the trie (prefix tree) for storing strings and fast pattern matching.

๐Ÿ—œ๏ธ

Compressed tries

Learn how merging single-child nodes saves space.

๐Ÿ”

No topics found
Try another search term.