From 6e92d0db19df04bf0c9f9ebc14ddd81257db4366 Mon Sep 17 00:00:00 2001 From: VISHNU <97398704+Stapa1@users.noreply.github.com> Date: Mon, 24 Oct 2022 11:44:14 +0530 Subject: [PATCH 1/4] N-queen_problem --- .../divide-and-conquer/N-queen_problem.c | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 algorithms/divide-and-conquer/N-queen_problem.c diff --git a/algorithms/divide-and-conquer/N-queen_problem.c b/algorithms/divide-and-conquer/N-queen_problem.c new file mode 100644 index 00000000..40754874 --- /dev/null +++ b/algorithms/divide-and-conquer/N-queen_problem.c @@ -0,0 +1,61 @@ +#include +#include +int board[20],count; +int main() +{ +int n,i,j; +void queen(int row,int n); + +printf("\n\nEnter number of Queens:"); +scanf("%d",&n); +queen(1,n); +return 0; +} + +void print(int n) +{ +int i,j; +printf("\n\nSolution %d:\n\n",++count); +for(i=1;i<=n;++i) +printf("\t%d",i); +for(i=1;i<=n;++i) +{ +printf("\n\n%d",i); +for(j=1;j<=n;++j) +{ +if(board[i]==j) +printf("\tQ"); +else +printf("\t-"); +} +} +} +int place(int row,int column) +{ +int i; + +for(i=1;i<=row-1;++i) +{ +if(board[i]==column) +return 0; +else +if(abs(board[i]-column)==abs(i-row)) +return 0; +} +return 1; +} +void queen(int row,int n) +{ +int column; +for(column=1;column<=n;++column) +{ +if(place(row,column)) +{ +board[row]=column; +if(row==n) +print(n); +else +queen(row+1,n); +} +} +} From f4c94360ee30dca049f5d0f8004b0a2099569998 Mon Sep 17 00:00:00 2001 From: VISHNU <97398704+Stapa1@users.noreply.github.com> Date: Tue, 25 Oct 2022 20:18:31 +0530 Subject: [PATCH 2/4] Bfs Algorithm --- algorithms/Bfs.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 algorithms/Bfs.c diff --git a/algorithms/Bfs.c b/algorithms/Bfs.c new file mode 100644 index 00000000..2554c1a0 --- /dev/null +++ b/algorithms/Bfs.c @@ -0,0 +1,39 @@ +#include +int a[20][20], q[20], visited[20], n, i, j, f = 0, r = -1; +void bfs(int v) { +for(i = 1; i <= n; i++) +if(a[v][i] && !visited[i]) +q[++r] = i; +if(f <= r) { +visited[q[f]] = 1; +bfs(q[f++]); +} +} +int main() { +int v; +printf("\n Enter the number of vertices:"); +scanf("%d", &n); +for(i=1; i <= n; i++) { +q[i] = 0; +visited[i] = 0; +} +printf("\n Enter graph data in matrix form:\n"); +for(i=1; i<=n; i++) { +for(j=1;j<=n;j++) { +scanf("%d", &a[i][j]); +} +} +printf("\n Enter the starting vertex:"); + +scanf("%d", &v); +bfs(v); +printf("\n The node which are reachable are:\n"); +for(i=1; i <= n; i++) { +if(visited[i]) +printf("%d\t", i); +else { +printf("\n Bfs is not possible. Not all nodes are reachable"); +break; +} +} +} From 10a9a9053ed42fe4bac88c52a7d547be8c62661b Mon Sep 17 00:00:00 2001 From: VISHNU <97398704+Stapa1@users.noreply.github.com> Date: Tue, 25 Oct 2022 20:19:51 +0530 Subject: [PATCH 3/4] Add files via upload --- algorithms/Dfs.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 algorithms/Dfs.c diff --git a/algorithms/Dfs.c b/algorithms/Dfs.c new file mode 100644 index 00000000..b6a78515 --- /dev/null +++ b/algorithms/Dfs.c @@ -0,0 +1,41 @@ +#include +int a[20][20],reach[20],n; +void dfs(int v) +{ +int i; +reach[v]=1; + +for(i=1;i<=n;i++) +if(a[v][i] && !reach[i]) +{ +printf("n %d->%d",v,i); +dfs(i); +} +} +int main() +{ +int i,j,count=0; +printf("\n Enter number of vertices:"); +scanf("%d",&n); +for(i=1;i<=n;i++) +{ +reach[i]=0; +for(j=1;j<=n;j++) +a[i][j]=0; +} +printf("\n Enter the adjacency matrix:\n"); +for(i=1;i<=n;i++) +for(j=1;j<=n;j++) +scanf("%d",&a[i][j]); +dfs(1); +printf("n"); +for(i=1;i<=n;i++) +{ +if(reach[i]) +count++; +} +if(count==n) +printf("\n Graph is connected"); +else +printf("\n Graph is not connected"); +} From e7603705cbdc8abb7c6ce77c0d4e1c85ede2caff Mon Sep 17 00:00:00 2001 From: VISHNU <97398704+Stapa1@users.noreply.github.com> Date: Tue, 25 Oct 2022 20:20:19 +0530 Subject: [PATCH 4/4] String patten searching --- stringpatternsearching.c | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 stringpatternsearching.c diff --git a/stringpatternsearching.c b/stringpatternsearching.c new file mode 100644 index 00000000..383fe9bb --- /dev/null +++ b/stringpatternsearching.c @@ -0,0 +1,54 @@ +#include +#include +int match(char [], char []); + +int main() { + char a[100], b[100]; + int position; + + printf("Enter some text\n"); + scanf("%s",&a); + + printf("Enter a string to find\n"); + scanf("%s",&b); + + position = match(a, b); + + if (position != -1) { + printf("Found at location: %d\n", position + 1); + } + else { + printf("Not found.\n"); + } + + return 0; +} + +int match(char text[], char pattern[]) { + int c, d, e, text_length, pattern_length, position = -1; + + text_length = strlen(text); + pattern_length = strlen(pattern); + + if (pattern_length > text_length) { + return -1; + } + + for (c = 0; c <= text_length - pattern_length; c++) { + position = e = c; + + for (d = 0; d < pattern_length; d++) { + if (pattern[d] == text[e]) { + e++; + } + else { + break; + } + } + if (d == pattern_length) { + return position; + } + } + + return -1; +}