Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
efe02da
Add binary search in C
2Clutch Oct 27, 2024
d4c3e22
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Oct 27, 2024
7251534
Add code
2Clutch Oct 27, 2024
ea9c9ff
Handle errors and potential edge cases
2Clutch Oct 27, 2024
b428138
Clean Up + Refactor + Request Input from Command Line
2Clutch Oct 27, 2024
bca6b20
Follow documentation to the letter
2Clutch Oct 27, 2024
6a1105c
for the win? (e.g. check that array is not empty)
2Clutch Oct 28, 2024
7e838d0
Clean Up & Refactor
2Clutch Oct 28, 2024
9f66116
Merge remote-tracking branch 'refs/remotes/origin/master'
2Clutch Oct 28, 2024
e6816cb
Clean Up & Refactor
2Clutch Oct 28, 2024
7028097
Fix error message
2Clutch Oct 28, 2024
de08b32
Update error message handling
2Clutch Oct 28, 2024
8b8d41b
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Oct 28, 2024
29511a4
Add Convex Hull
2Clutch Oct 28, 2024
ee12a88
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Oct 29, 2024
643eb70
Update test handling
2Clutch Oct 29, 2024
8c310de
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Oct 29, 2024
d0f8213
Clean Up & Refactor
2Clutch Oct 29, 2024
51f982e
for the win?
2Clutch Oct 29, 2024
5dfa5c5
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Oct 29, 2024
fddbd64
Merge remote-tracking branch 'refs/remotes/origin/master'
2Clutch Oct 29, 2024
fe4f138
Fix input validation and output format for convex hull calculation + …
2Clutch Oct 29, 2024
793dc0a
Add command line argument handling for x and y coordinates + Implemen…
2Clutch Oct 29, 2024
aa58d24
brand new implementation
2Clutch Oct 29, 2024
bd69cb4
Refactor error handling to eliminate code repetition for usage messages
2Clutch Oct 29, 2024
54d6812
Use same error message everywhere
2Clutch Oct 29, 2024
db2fd2e
Handle negative numbers
2Clutch Oct 29, 2024
6314765
Fix convex hull logic to correctly output hull points
2Clutch Oct 31, 2024
1afd977
Merge branch 'main' into master
rzuckerm Nov 3, 2024
b67e744
Merge branch 'main' into master
rzuckerm Nov 16, 2024
9f03c2b
Fix Convex Hull in C
Nov 16, 2024
6e64781
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Jan 18, 2025
13b1aab
Add job-sequencing.c
2Clutch Jan 18, 2025
fe0426a
Update solution
2Clutch Jan 18, 2025
17073e3
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Jan 18, 2025
1d17029
Add fraction-math.c
2Clutch Jan 18, 2025
bca9bd6
Update solution
2Clutch Jan 18, 2025
b67b7a2
Merge branch 'TheRenegadeCoder:main' into master
2Clutch Jan 18, 2025
8d08765
Add depth-first-search.c
2Clutch Jan 18, 2025
eb26486
Update solution
2Clutch Jan 18, 2025
40cfc72
remove dependency on math library
2Clutch Jan 18, 2025
dfff909
improve input validation and error handling
2Clutch Jan 18, 2025
d5571d3
Merge branch 'main' into master
2Clutch Jan 19, 2025
47167d8
bring back sqrt solution
2Clutch Jan 19, 2025
a48676d
add math library linking flag for sqrt support
2Clutch Jan 19, 2025
cc5ba65
adjust error handling & output format
2Clutch Jan 19, 2025
7a280fa
Merge branch 'main' into master
rzuckerm Jan 19, 2025
5243c9f
Merge branch 'main' into master
rzuckerm Jan 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions archive/c/c/depth-first-search.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>

#define MAX_NODES 100

int adjacency_matrix[MAX_NODES][MAX_NODES];
int vertex_values[MAX_NODES];
int num_nodes;
bool visited[MAX_NODES];

bool dfs(int node, int target) {
if (vertex_values[node] == target) {
return true;
}
visited[node] = true;
for (int i = 0; i < num_nodes; i++) {
if (adjacency_matrix[node][i] && !visited[i]) {
if (dfs(i, target)) {
return true;
}
}
}
return false;
}

bool depth_first_search(int target) {
memset(visited, 0, sizeof(visited));
for (int i = 0; i < num_nodes; i++) {
if (!visited[i] && dfs(i, target)) {
return true;
}
}
return false;
}

void parse_matrix(char* input) {
char* token = strtok(input, ", ");
int i = 0, j = 0;
while (token != NULL) {
adjacency_matrix[i][j] = atoi(token);
j++;
if (j == num_nodes) {
i++;
j = 0;
}
token = strtok(NULL, ", ");
}
}

void parse_values(char* input) {
char* token = strtok(input, ", ");
int i = 0;
while (token != NULL) {
vertex_values[i++] = atoi(token);
token = strtok(NULL, ", ");
}
}

int main(int argc, char* argv[]) {
if (argc != 4 || !*argv[1] || !*argv[2] || !*argv[3]) {
printf("Usage: please provide a tree in an adjacency matrix form (\"0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0\") together with a list of vertex values (\"1, 3, 5, 2, 4\") and the integer to find (\"4\")");
return 1;
}

char* matrix_str = argv[1];
char* values_str = argv[2];
int target = atoi(argv[3]);

int total_elements = 1;
for (char* p = matrix_str; *p; p++) {
if (*p == ',') total_elements++;
}

num_nodes = (int)sqrt(total_elements);

parse_matrix(matrix_str);
parse_values(values_str);

bool result = depth_first_search(target);
printf(result ? "true\n" : "false\n");

return 0;
}

2 changes: 1 addition & 1 deletion archive/c/c/testinfo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ folder:
container:
image: "gcc"
tag: "8.3"
build: "gcc -o {{ source.name }} {{ source.name }}{{ source.extension }}"
build: "gcc -o {{ source.name }} {{ source.name }}{{ source.extension }} -lm"
cmd: "./{{ source.name }}"
Loading