DSA - Binary Search Tree Min/Max

Introduction Finding the min and max elements is one of the simplest algorithms regarding BST (Binary Search Tree). The findMin method loops through the left child nodes and returns the value from the last node. The findMax method does the same but traverses the right child nodes. Code Example - Min func findMin() -> Int? { var min: Int? var curr: BSTNode? = self while curr != nil { min = curr?...

September 22, 2024 · 2 min · Dmytro Chumakov

DSA - Queue

What is a Queue? A Queue is an abstract data type that serves as an ordered collection of elements. A simple queue typically has several operations: push(item) - adds an item to the tail pop() - removes and returns an item from the head These operations make a queue a FIFO (First In, First Out) data structure. Implementation There are two ways to implement a queue. The first and simplest (but less efficient) way is by using an array and basic operations:...

September 20, 2024 · 2 min · Dmytro Chumakov

DSA - Adjacency List

What is an Adjacency List? An Adjacency List helps store a list of connections between each vertex in a finite graph. Vertex Connects with 0 1 1 0, 2, 3 2 1, 3 3 1, 2 Implementation The addEdge method takes vertices as input and adds an edge to the adjacency list. In this example, the adjacency list is represented as a dictionary that maps vertices to a set of all connected vertices....

September 17, 2024 · 1 min · Dmytro Chumakov

DSA - Graph

What is a graph? A graph is an abstract data type that represents vertices and edges that connect those vertices. Source Implementation A graph can be represented as a matrix with edges connecting each pair of vertices. For example, a graph with vertices 0, 1, 2, 3, 4 and edges between them can be represented as a matrix: 0 1 2 3 4 0 false true false false true 1 true false true true true 2 false true false true false 3 false true true false true 4 true true false true false In Swift, you can use a list of lists (2D array) to represent the matrix:...

September 14, 2024 · 2 min · Dmytro Chumakov

DSA - Breadth First Search

What is Breadth First Search? Breadth-first search (BFS) is an algorithm for traversing tree or graph data structures. It starts at the root and explores all the neighboring nodes at the current depth before moving on to nodes at the next depth level. Source Implementation The implementation of BFS may vary depending on the problem. The main idea of BFS is: It has a visited array that collects all elements that have already been visited....

September 12, 2024 · 1 min · Dmytro Chumakov