Algorithms_in_C++
1.0.0
Set of algorithms implemented in C++.
|
26 void insert_front(
int new_data);
27 void insert_tail(
int new_data);
29 bool find_item(
int item_to_find);
void mov(tower *From, tower *To)
Definition: tower_of_hanoi.cpp:39
int main()
Definition: caesar_cipher.cpp:120
static char get_idx_char(const uint8_t idx)
Get the character at a given index in the STRKEY.
Definition: hill_cipher.cpp:182
std::string encrypt(const std::string &text, const int &shift)
Definition: caesar_cipher.cpp:65
static const std::string codec(const std::string &text, const matrix< int > &key)
Convenience function to perform block cipher operations. The operations are identical for both encryp...
Definition: hill_cipher.cpp:210
int main()
Definition: vigenere_cipher.cpp:131
int main()
Definition: sudoku_solve.cpp:131
static matrix< int > generate_encryption_key(size_t size, int limit1=0, int limit2=10)
Generate encryption matrix of a given size. Larger size matrices are difficult to generate but provid...
Definition: hill_cipher.cpp:339
Implementation of Hill Cipher algorithm.
Definition: hill_cipher.cpp:81
int main()
Definition: nqueen_print_all_solutions.cpp:98
int main()
Definition: n_queens.cpp:118
node * deleteNode(node *root, int key)
Definition: avltree.cpp:88
void deleteKey(int i)
Definition: binaryheap.cpp:105
Backtracking algorithms.
Definition: graph_coloring.cpp:26
Definition: binaryheap.cpp:10
int main()
Definition: minimax.cpp:54
int heap_size
Current number of elements in min heap.
Definition: binaryheap.cpp:13
Definition: avltree.cpp:13
void test2(const std::string &text)
Self test 2 - using 8x8 randomly generated key.
Definition: hill_cipher.cpp:505
void decreaseKey(int i, int new_val)
Definition: binaryheap.cpp:76
void levelOrder(node *root)
Definition: avltree.cpp:119
bool isPossible(const std::array< std::array< int, V >, V > &mat, int i, int j, int no, int n)
Definition: sudoku_solve.cpp:36
Algorithms for encryption and decryption.
void test()
Definition: xor_cipher.cpp:75
Functions for Caesar cipher algorithm.
int main()
Definition: xor_cipher.cpp:95
static const char * STRKEY
Definition: hill_cipher.cpp:73
Functions for vigenère cipher algorithm.
static const T gcd(T a, T b)
Compute GCD of two integers using Euler's algorithm.
Definition: hill_cipher.cpp:138
void insertKey(int k)
Definition: binaryheap.cpp:55
node * createNode(int data)
Definition: avltree.cpp:21
int main()
Definition: hill_cipher.cpp:532
Functions for Eight Queens puzzle.
int capacity
maximum possible size of min heap
Definition: binaryheap.cpp:12
node * insert(node *root, int item)
Definition: avltree.cpp:66
static matrix< double > get_inverse(matrix< T > const &A)
Definition: hill_cipher.cpp:250
void printMat(const std::array< std::array< int, V >, V > &mat, int n)
Definition: sudoku_solve.cpp:66
static matrix< int > generate_decryption_key(matrix< int > const &encrypt_key)
Generate decryption matrix from an encryption matrix key.
Definition: hill_cipher.cpp:371
int h(int key)
Definition: hash_search.cpp:45
int * harr
pointer to array of elements in heap
Definition: binaryheap.cpp:11
static const std::string encrypt_text(const std::string &text, const matrix< int > &encrypt_key)
Encrypt a given text using a given key.
Definition: hill_cipher.cpp:445
static const std::string decrypt_text(const std::string &text, const matrix< int > &decrypt_key)
Decrypt a given text using a given key.
Definition: hill_cipher.cpp:457
void MinHeapify(int)
Definition: binaryheap.cpp:113
int height(node *root)
Definition: avltree.cpp:31
Functions for XOR cipher algorithm.
void test()
Definition: vigenere_cipher.cpp:111
node * rightRotate(node *root)
Definition: avltree.cpp:41
static uint8_t get_char_idx(const char ch)
Get the index of a character in the STRKEY.
Definition: hill_cipher.cpp:190
#define endl
Definition: matrix_exponentiation.cpp:36
bool isSafe(int v, const std::array< std::array< int, V >, V > &graph, const std::array< int, V > &color, int c)
Definition: graph_coloring.cpp:51
int left(int i)
Definition: binaryheap.cpp:31
void test1(const std::string &text)
Self test 1 - using 3x3 randomly generated key.
Definition: hill_cipher.cpp:470
static std::pair< matrix< int >, matrix< int > > generate_keys(size_t size, int limit1=0, int limit2=10)
Generate encryption and decryption key pair.
Definition: hill_cipher.cpp:424
int minimax(int depth, int node_index, bool is_max, const std::array< int, T > &scores, double height)
Definition: minimax.cpp:38
void solveNQ(std::array< std::array< int, n >, n > board, const int &col)
Definition: n_queens.cpp:90
int main()
Definition: knight_tour.cpp:80
std::string decrypt(const std::string &text, const int &shift)
Definition: caesar_cipher.cpp:81
int data[MAX]
test data
Definition: hash_search.cpp:24
node * minValue(node *root)
Definition: avltree.cpp:59
static double rand_range(matrix< T2 > *M, T1 a, T1 b)
Function overload to fill a matrix with random integers in a given interval.
Definition: hill_cipher.cpp:118
Kind front()
Definition: queue.h:61
void printSolution(const std::array< int, V > &color)
Definition: graph_coloring.cpp:32
MinHeap(int cap)
Definition: binaryheap.cpp:19
void graphColoring(const std::array< std::array< int, V >, V > &graph, int m, std::array< int, V > color, int v)
Definition: graph_coloring.cpp:69
bool issafe(int x, int y, const std::array< std::array< int, V >, V > &sol)
Definition: knight_tour.cpp:33
int main()
Definition: avltree.cpp:134
double determinant_lu(const matrix< T > &A)
Definition: lu_decomposition.h:90
static const T2 rand_range(T1 a, T1 b)
Function to generate a random integer in a given interval.
Definition: hill_cipher.cpp:92
static std::ostream & operator<<(std::ostream &out, matrix< T > const &v)
Definition: hill_cipher.cpp:54
bool solveSudoku(std::array< std::array< int, V >, V > &mat, int i, int j)
Definition: sudoku_solve.cpp:91
node * leftRotate(node *root)
Definition: avltree.cpp:50
Functions for Eight Queens puzzle with all solutions.
static const std::valarray< uint8_t > mat_mul(const std::valarray< uint8_t > &vector, const matrix< int > &key)
helper function to perform vector multiplication with encryption or decryption matrix
Definition: hill_cipher.cpp:159
int getMin()
Definition: binaryheap.cpp:43
void test()
Definition: caesar_cipher.cpp:100
int getBalance(node *root)
Definition: avltree.cpp:38
int main()
Definition: graph_coloring.cpp:96
Definition: binary_search_tree.cpp:17
int extractMin()
Definition: binaryheap.cpp:85
int right(int i)
Definition: binaryheap.cpp:34
bool solve(int x, int y, int mov, std::array< std::array< int, V >, V > &sol, const std::array< int, V > &xmov, std::array< int, V > &ymov)
Definition: knight_tour.cpp:50