From 7740861ce64ef56ccb7dd73c3548ec7cfb7b0f03 Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Tue, 4 Apr 2023 14:27:55 +0300 Subject: [PATCH] 555 --- Home/PL/HW/hw04.04/1сonArray.c | 56 ++++++ Home/PL/HW/hw04.04/Calculator/function.c | 172 ++++++++++++++++++ Home/PL/HW/hw04.04/Calculator/header.h | 27 +++ Home/PL/HW/hw04.04/Calculator/main.c | 50 +++++ Home/PL/HW/hw04.04/Calculator/output/main | Bin 0 -> 56312 bytes Home/PL/HW/hw04.04/Calculator/output/test.txt | 4 + Home/PL/HW/hw04.04/StackCalk.c | 2 - Home/PL/HW/hw04.04/output/1сonArray | Bin 0 -> 51408 bytes Home/PL/HW/hw04.04/output/2conArray | Bin 0 -> 44464 bytes Home/PL/Lessons/04.04/func.c | 171 +++++++++++++++++ Home/PL/Lessons/04.04/head.h | 11 ++ Home/PL/Lessons/04.04/main.c | 6 + 12 files changed, 497 insertions(+), 2 deletions(-) create mode 100644 Home/PL/HW/hw04.04/1сonArray.c create mode 100644 Home/PL/HW/hw04.04/Calculator/function.c create mode 100644 Home/PL/HW/hw04.04/Calculator/header.h create mode 100644 Home/PL/HW/hw04.04/Calculator/main.c create mode 100755 Home/PL/HW/hw04.04/Calculator/output/main create mode 100644 Home/PL/HW/hw04.04/Calculator/output/test.txt delete mode 100644 Home/PL/HW/hw04.04/StackCalk.c create mode 100755 Home/PL/HW/hw04.04/output/1сonArray create mode 100755 Home/PL/HW/hw04.04/output/2conArray create mode 100644 Home/PL/Lessons/04.04/func.c create mode 100644 Home/PL/Lessons/04.04/head.h create mode 100644 Home/PL/Lessons/04.04/main.c diff --git a/Home/PL/HW/hw04.04/1сonArray.c b/Home/PL/HW/hw04.04/1сonArray.c new file mode 100644 index 0000000..6f9654a --- /dev/null +++ b/Home/PL/HW/hw04.04/1сonArray.c @@ -0,0 +1,56 @@ + +#include +#include + +struct Node { + int data; + struct Node* next; +}; + +struct Node* top = NULL; // инициализация вершины стека как пустой + +/* функция для добавления элемента в стек */ +void push(int data) { + struct Node* new_node = (struct Node*)malloc(sizeof(struct Node)); + new_node->data = data; + new_node->next = top; + top = new_node; +} + +/* функция для удаления элемента из стека */ +int pop() { + if (top == NULL) { // проверка на пустой стек + printf("Stack Underflow!"); + return -1; + } + int data = top->data; + struct Node* temp = top; + top = top->next; // Спросить по поводу отсутствия эл-та + free(temp); + return data; +} + +/* функция для просмотра последнего элемента стека */ +int peek() { + if (top == NULL) { // проверка на пустой стек + printf("Stack is Empty!"); + return -1; + } + return top->data; +} + +int main() { + printf("%d\n", peek()); + push(1); + printf("%d\n", peek()); + push(2); + printf("%d\n", peek()); + push(3); + + printf("%d\n", pop()); // выведет 3 + printf("%d\n", peek()); // выведет 2 + printf("%d", pop()); // выведет 2 + printf("\n"); + + return 0; +} diff --git a/Home/PL/HW/hw04.04/Calculator/function.c b/Home/PL/HW/hw04.04/Calculator/function.c new file mode 100644 index 0000000..e8956e2 --- /dev/null +++ b/Home/PL/HW/hw04.04/Calculator/function.c @@ -0,0 +1,172 @@ +#include "header.h" + + +void linked_print(Node* l) { + while (l != NULL) { + printf("%d %s\n", l->x, l->name); + l = l->next; + } +} + +Node* add_tail(Node* l, int x, char name[]) { + if (l->x == 0 && !strcmp(l->name, "\0")) { + l->x = x; + memcpy(l->name, name, STR_LEN); + l->next = NULL; + l->prev = NULL; + return l; + } + + Node* res = l; + while (l->next != NULL) l = l->next; + + Node* tmp = malloc(sizeof(Node)); + tmp->x = x; + memcpy(tmp->name, name, STR_LEN); + tmp->prev = l; + l->next = tmp; + return res; +} + +Node* add_head(Node* l, int x, char name[]) { + if (l->x == 0 && !strcmp(l->name, "\0")) { + l->x = x; + memcpy(l->name, name, STR_LEN); + l->next = NULL; + l->prev = NULL; + return l; + } + + Node* tmp = malloc(sizeof(Node)); + if (tmp == NULL) + exit(1); + + tmp->next = l; + l->prev = tmp; + tmp->prev = NULL; + tmp->x = x; + memcpy(tmp->name, name, STR_LEN); + return tmp; +} + +Node* del_head(Node* l) { + if (l == NULL) return NULL; + else if (l->next == NULL) { + free(l); + l = NULL; + return NULL; + } + Node* tmp = l->next; + tmp->prev = NULL; + free(l); + l = NULL; + return tmp; +} + +void del_tail(Node* l) { + if (l == NULL) return; + else if (l->next == NULL) { + free(l); + l = NULL; + return; + } + while (l->next != NULL) l = l->next; + Node* tmp = l->prev; + l->prev = NULL; + free(l); + tmp->next = NULL; +} + +int len(Node* l) { + int res = 0; + while (l != NULL) { + res++; + l = l->next; + } + return res; +} + +void swap(Node* l, int first, int second) { + if (first >= len(l) || second >= len(l)) exit(3); + int i, min, max; + min = (first <= second) ? first : second; + max = first + second - min; + + for (i = 0; i < min; i++) { + if (l != NULL) l = l->next; + else exit(2); + } + Node* tmp = l; + + for (i = 0; i < max - min; i++) { + if (l != NULL) l = l->next; + else exit(2); + } + + Node temp = *l; + l->x = tmp->x; + tmp->x = temp.x; + memcpy(l->name, tmp->name, STR_LEN); + memcpy(tmp->name, temp.name, STR_LEN); +} + +Node get(Node* l, int n) { + if (n > len(l)) exit(3); + int i; + for (i = 0; i < n; i++) { + l = l->next; + } + return *l; +} + +void select_sort(Node* l) { + if (l == NULL || l->next == NULL) return; + + int n = len(l), i, j; + + for (i = 0; i < n - 1; i++) { + for (j = i + 1; j < n; j++) { + if (get(l, j).x < get(l, i).x) + swap(l, i, j); + } + } +} + +void list_fprintf(Node* l, char path[]) { + FILE* f = fopen(path, "w"); + if (f == NULL) + exit(4); + int i, n = len(l); + + for (i = 0; i < n; i++) { + fprintf(f, "%d %s\n", l->x, l->name); + l = l->next; + } + + fclose(f); +} + +Node* list_fscanf(char path[]) { + int tmp_x, i; + char s[STR_LEN] = {'\0'}; + FILE* f = fopen(path, "r"); + if (f == NULL) + exit(5); + + Node* tmp = malloc(sizeof(Node)); //Дописать проверку на NULL + tmp->prev = NULL; + tmp->next = NULL; + + + + for (i = 0; fscanf(f, "%d %s\n", &tmp_x, s) != EOF; i++) { + if (i == 0) { + tmp->x = tmp_x; + memcpy(tmp->name, s, STR_LEN); + } // Перенести в a_t + else add_tail(tmp, tmp_x, s); + } + + fclose(f); + return tmp; +} \ No newline at end of file diff --git a/Home/PL/HW/hw04.04/Calculator/header.h b/Home/PL/HW/hw04.04/Calculator/header.h new file mode 100644 index 0000000..7fc9535 --- /dev/null +++ b/Home/PL/HW/hw04.04/Calculator/header.h @@ -0,0 +1,27 @@ +#include +#include +#include +#include + +#define N 5 +#define STR_LEN 8 + +typedef struct Node { + int x; + struct Node* next; + struct Node* prev; + char name[STR_LEN]; +} Node; + +void linked_print(Node* l); +Node* add_tail(Node* l, int x, char name[]); +Node* add_head(Node* l, int x, char name[]); +Node* del_head(Node* l); +void del_tail(Node* l); +int len(Node* l); +Node get(Node* l, int n); + +void swap(Node* l1, int i, int j); +void select_sort(Node* l); +void list_fprintf(Node* l, char path[]); +Node* list_fscanf(char path[]); \ No newline at end of file diff --git a/Home/PL/HW/hw04.04/Calculator/main.c b/Home/PL/HW/hw04.04/Calculator/main.c new file mode 100644 index 0000000..8cfdae1 --- /dev/null +++ b/Home/PL/HW/hw04.04/Calculator/main.c @@ -0,0 +1,50 @@ +#include "function.c" + +int main() { + srand(time(0)); + Node* l = malloc(sizeof(Node)); + if (l == NULL) + exit(1); + + int i, j; + for (i = 0; i < N; i++) { + char s[STR_LEN]; + for (j = 0; j < STR_LEN - 1; j++) + s[j] = 'a' + rand() % 25; + s[j + 1] = '\0'; + add_tail(l, rand() % 100, s); + } + + printf("\nAfter add_tail(%d):\n", len(l)); + linked_print(l); + + l = add_head(l, 5, "head"); + printf("\nAfter add_head(%d):\n", len(l)); + linked_print(l); + + l = del_head(l); + printf("\nAfter del_head(%d):\n", len(l)); + linked_print(l); + + swap(l, 0, 1); + printf("\nAfter swap first and second el:\n"); + linked_print(l); + + del_tail(l); + printf("\nAfter del_tail(%d):\n", len(l)); + linked_print(l); + + select_sort(l); + printf("\nAfter sort:\n"); + linked_print(l); + + printf("\nWriting to file test.txt\n"); + list_fprintf(l, "test.txt"); + + printf("\nRead from file test.txt:\n"); + Node* l2 = list_fscanf("test.txt"); + linked_print(l2); + + free(l); + return 0; +} \ No newline at end of file diff --git a/Home/PL/HW/hw04.04/Calculator/output/main b/Home/PL/HW/hw04.04/Calculator/output/main new file mode 100755 index 0000000000000000000000000000000000000000..e9ac12f34b92435112610797a14686cef790f1c5 GIT binary patch literal 56312 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 n^^r*Pl?t}~pUhDq`i^}qr literal 0 HcmV?d00001 diff --git a/Home/PL/HW/hw04.04/Calculator/output/test.txt b/Home/PL/HW/hw04.04/Calculator/output/test.txt new file mode 100644 index 0000000..2edaa4f --- /dev/null +++ b/Home/PL/HW/hw04.04/Calculator/output/test.txt @@ -0,0 +1,4 @@ +2 qjrjqtg +7 upivrdd +49 bokdbfv +74 hlchgxy diff --git a/Home/PL/HW/hw04.04/StackCalk.c b/Home/PL/HW/hw04.04/StackCalk.c deleted file mode 100644 index d807850..0000000 --- a/Home/PL/HW/hw04.04/StackCalk.c +++ /dev/null @@ -1,2 +0,0 @@ -#include -#include \ No newline at end of file diff --git a/Home/PL/HW/hw04.04/output/1сonArray b/Home/PL/HW/hw04.04/output/1сonArray new file mode 100755 index 0000000000000000000000000000000000000000..885acdd8ee6327d9e0d718ffc6baeeca15bc7e40 GIT binary patch literal 51408 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 K{wMF#`hNgb9xVa@ literal 0 HcmV?d00001 diff --git a/Home/PL/HW/hw04.04/output/2conArray b/Home/PL/HW/hw04.04/output/2conArray new file mode 100755 index 0000000000000000000000000000000000000000..5bfd539f2fdbea456b891ade950da0180817052f GIT binary patch literal 44464 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 NQx, l->name); + l = l->next; + } +} + +Node* add_tail(Node* l, int x, char name[]) { + if (l->x == 0 && !strcmp(l->name, "\0")) { + l->x = x; + memcpy(l->name, name, STR_LEN); + l->next = NULL; + l->prev = NULL; + return l; + } + + Node* res = l; + while (l->next != NULL) l = l->next; + + Node* tmp = malloc(sizeof(Node)); + tmp->x = x; + memcpy(tmp->name, name, STR_LEN); + tmp->prev = l; + l->next = tmp; + return res; +} + +Node* add_head(Node* l, int x, char name[]) { + if (l->x == 0 && !strcmp(l->name, "\0")) { + l->x = x; + memcpy(l->name, name, STR_LEN); + l->next = NULL; + l->prev = NULL; + return l; + } + + Node* tmp = malloc(sizeof(Node)); + if (tmp == NULL) + exit(1); + + tmp->next = l; + l->prev = tmp; + tmp->prev = NULL; + tmp->x = x; + memcpy(tmp->name, name, STR_LEN); + return tmp; +} + +Node* del_head(Node* l) { + if (l == NULL) return NULL; + else if (l->next == NULL) { + free(l); + l = NULL; + return NULL; + } + Node* tmp = l->next; + tmp->prev = NULL; + free(l); + l = NULL; + return tmp; +} + +void del_tail(Node* l) { + if (l == NULL) return; + else if (l->next == NULL) { + free(l); + l = NULL; + return; + } + while (l->next != NULL) l = l->next; + Node* tmp = l->prev; + l->prev = NULL; + free(l); + tmp->next = NULL; +} + +int len(Node* l) { + int res = 0; + while (l != NULL) { + res++; + l = l->next; + } + return res; +} + +void swap(Node* l, int first, int second) { + if (first >= len(l) || second >= len(l)) exit(3); + int i, min, max; + min = (first <= second) ? first : second; + max = first + second - min; + + for (i = 0; i < min; i++) { + if (l != NULL) l = l->next; + else exit(2); + } + Node* tmp = l; + + for (i = 0; i < max - min; i++) { + if (l != NULL) l = l->next; + else exit(2); + } + + Node temp = *l; + l->x = tmp->x; + tmp->x = temp.x; + memcpy(l->name, tmp->name, STR_LEN); + memcpy(tmp->name, temp.name, STR_LEN); +} + +Node get(Node* l, int n) { + if (n > len(l)) exit(3); + int i; + for (i = 0; i < n; i++) { + l = l->next; + } + return *l; +} + +void select_sort(Node* l) { + if (l == NULL || l->next == NULL) return; + + int n = len(l), i, j; + + for (i = 0; i < n - 1; i++) { + for (j = i + 1; j < n; j++) { + if (get(l, j).x < get(l, i).x) + swap(l, i, j); + } + } +} + +void list_fprintf(Node* l, char path[]) { + FILE* f = fopen(path, "w"); + if (f == NULL) + exit(4); + int i, n = len(l); + + for (i = 0; i < n; i++) { + fprintf(f, "%d %s\n", l->x, l->name); + l = l->next; + } + + fclose(f); +} + +Node* list_fscanf(char path[]) { + int tmp_x, i; + char s[STR_LEN] = {'\0'}; + FILE* f = fopen(path, "r"); + if (f == NULL) + exit(5); + + Node* tmp = malloc(sizeof(Node)); //Дописать проверку на NULL + tmp->prev = NULL; + tmp->next = NULL; + + + + for (i = 0; fscanf(f, "%d %s\n", &tmp_x, s) != EOF; i++) { + if (i == 0) { + tmp->x = tmp_x; + memcpy(tmp->name, s, STR_LEN); + } // Перенести в a_t + else add_tail(tmp, tmp_x, s); + } + + fclose(f); + return tmp; +} \ No newline at end of file diff --git a/Home/PL/Lessons/04.04/head.h b/Home/PL/Lessons/04.04/head.h new file mode 100644 index 0000000..25e0fad --- /dev/null +++ b/Home/PL/Lessons/04.04/head.h @@ -0,0 +1,11 @@ +#include +#include +#include +#include + +typedef struct Node { + int x; + struct Node* next; + struct Node* prev; + char name[STR_LEN]; +} Node; \ No newline at end of file diff --git a/Home/PL/Lessons/04.04/main.c b/Home/PL/Lessons/04.04/main.c new file mode 100644 index 0000000..8d8c3e2 --- /dev/null +++ b/Home/PL/Lessons/04.04/main.c @@ -0,0 +1,6 @@ +#include "func.c" + +int main(){ + + +} \ No newline at end of file