Karp Rabin algorithm is a string searching algorithm that uses hashing to find any one of a set of pattern strings in a text.It mainly useful for detecting plagiarism. Write a program to implement Karp Rabin algorithm

String searching algorithm helps to search the occurrences of the word within the text string. Write a program to implement Knuth Morris Pratt string searching algorithm.

Boyer Moore string search algorithm is an efficient string searching algorithm that is the standard benchmark for practical string search literature. Write a program to implement Boyer Moore string search algorithm

A splay tree is a self-adjusting binary search tree with the additional property that recently accessed elements are quick to access again. The splay tree has good performance during the average case and uses small memory compare than another tree.

An AVL tree is another self-balanced binary search tree. The heights of the two child subtrees of any node differ by at most one; otherwise, rebalancing is done to restore this property. The AVL tree maintains an extra attribute in each node to balance the height.

Depth First Search algorithm is an algorithm to search node from tree or graph. DFS algorithm starts traversing from the root. It traverses each branch before backtracking. DFS takes less memory compared than Breadth first search and not necessary to store all of the child pointers at each level.

Breadth First Search is an algorithm for searching the nodes in tree or graph data structures. It starts from the root node and explores the neighbor nodes first, before moving to the next level neighbors. If the solution is not far from the root, we can choose breadth-first search solution. If the solutions are far, it takes a lot of time to find the solution.

A graph data structure consists of a finite (and possibly mutable) set of nodes or vertices. A graph may be either undirected or directedGraph supports add, delete, neighbors, adjacent operations.