From 875630a7139f6694307429715be7e981b3283e82 Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Tue, 9 May 2023 17:49:42 +0300 Subject: [PATCH] add Vova`s list --- gen/Trees/appT | Bin 0 -> 16384 bytes gen/Trees/func.c | 14 ++--- gen/Trees/main.c | 22 +++++++- other/Vova/list/app | Bin 0 -> 16608 bytes other/Vova/list/fulfill.c | 60 +++++++++++++++++++++ other/Vova/list/funcinst.c | 106 +++++++++++++++++++++++++++++++++++++ other/Vova/list/head.h | 20 +++++++ 7 files changed, 213 insertions(+), 9 deletions(-) create mode 100755 gen/Trees/appT create mode 100755 other/Vova/list/app create mode 100755 other/Vova/list/fulfill.c create mode 100755 other/Vova/list/funcinst.c create mode 100755 other/Vova/list/head.h diff --git a/gen/Trees/appT b/gen/Trees/appT new file mode 100755 index 0000000000000000000000000000000000000000..3c13e7307df0da4b69edf3441cb80879b91ef64f GIT binary patch literal 16384 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 A(f|Me literal 0 HcmV?d00001 diff --git a/gen/Trees/func.c b/gen/Trees/func.c index 78293bb..3bb7afa 100644 --- a/gen/Trees/func.c +++ b/gen/Trees/func.c @@ -62,13 +62,13 @@ tree *maxim(tree *root) tree *findForDel(tree *root) { - tree *p = root, *lef = NULL; // Если есть правое поддерево, то ищем минимальный элемент в этом поддереве - if (p -> right != NULL) - return minim(p -> right); - lef = p -> parent; - while ((lef != NULL) && (p == lef -> right)) + tree *rig = root, *lef = NULL; // Если есть правое поддерево, то ищем минимальный элемент в этом поддереве + if (rig -> right != NULL) + return minim(rig -> right); + lef = rig -> parent; + while ((lef != NULL) && (rig == lef -> right)) { - p = lef; + rig = lef; lef = lef -> parent; } return lef; @@ -77,7 +77,7 @@ tree *findForDel(tree *root) tree *del_node(tree *root, int field) { // Поиск удаляемого узла по ключу - tree *p = root, *lef = NULL, *tmp = NULL; + tree *rig = root, *lef = NULL, *tmp = NULL; lef = find_node(root, field); // 1 случай: у узла нет потомков if ((lef -> left == NULL) && (lef -> right == NULL)) diff --git a/gen/Trees/main.c b/gen/Trees/main.c index 6cbd9b8..0ad2ef0 100644 --- a/gen/Trees/main.c +++ b/gen/Trees/main.c @@ -2,6 +2,24 @@ #include #include "head.h" -int main(){ - return 126; +int main(int argc, char *argv[]){ + tree *root=NULL; + root = init_root(root, 65); + print_tree(root); + printf("\n"); + root=del_node(root, 65); + print_tree(root); + printf("\n"); + root = add_node(root, 70); + root = add_node(root, 66); + root = add_node(root, 68); + root = add_node(root, 71); + root = add_node(root, 67); + root = add_node(root, 72); + print_tree(root); + printf("\n"); + root = del_node(root, 66); + print_tree(root); + printf("\n"); + return 0; } \ No newline at end of file diff --git a/other/Vova/list/app b/other/Vova/list/app new file mode 100755 index 0000000000000000000000000000000000000000..fbb3ce69d13fbf099d972643b4f0be2b1e13795c GIT binary patch literal 16608 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 literal 0 HcmV?d00001 diff --git a/other/Vova/list/fulfill.c b/other/Vova/list/fulfill.c new file mode 100755 index 0000000..4754418 --- /dev/null +++ b/other/Vova/list/fulfill.c @@ -0,0 +1,60 @@ +#include "head.h" + +int main(int argc, char *argv[]) +{ + printf("Hello! Let's begin\n"); + srand(time(0)); + Node *n1 = NULL; + Node *n2 = NULL; + Node *n3 = NULL; + + if ((n1 = malloc(sizeof(Node))) == NULL || (n2 = malloc(sizeof(Node))) == NULL || (n3 = malloc(sizeof(Node))) == NULL) + { + printf("No memory for you\n"); + exit(2); + } + n1 = add_tail(n1, "tail"); + + printf("First error\n"); + + int i; + for (i = 0; i < CO; i++) + { + char s[LEN]; + int m; + printf("Let it be\n"); + for (m = 0; m < LEN - 1; m++) + s[m] = 'V' + rand() % 2; + s[LEN - 1] = '\0'; + + n1 = add_tail(n1, s); + printf("10"); + for (m = 0; m < LEN - 1; m++) + { + s[m] = 'V' + rand() % 2; + printf("20"); + } + s[LEN - 1] = '\0'; + n2 = add_tail(n2, s); + } + + printf("Initial arrays:\n"); + node_print(n1); + printf("\n"); + node_print(n2); + + n3 = find_0(n1, n2); + + printf("\n"); + + printf("Final version:\n"); + node_print(n3); + + free(n1); + free(n2); + free(n3); + + printf("That's all for now\n"); + + return 0; +} \ No newline at end of file diff --git a/other/Vova/list/funcinst.c b/other/Vova/list/funcinst.c new file mode 100755 index 0000000..3e1e7c9 --- /dev/null +++ b/other/Vova/list/funcinst.c @@ -0,0 +1,106 @@ +#include "head.h" + +void node_print(Node *n) +{ + while (n != NULL) + { + printf("%s\n", n->name); + n = n->ne; + } +} + +int len(Node *n) +{ + int f = 0; + while (n != NULL) + { + f++; + n = n->ne; + } + return f; +} + +Node *add_tail(Node *n, char s[]) +{ + if (n == NULL) + { + if ((n = malloc(sizeof(Node))) == NULL) + { + printf("No memory for you\n"); + exit(1); + } + n->ne = NULL; + n->prv = NULL; + memcpy(n->name, s, LEN); + return n; + } + if (!strcmp(n->name, "\0")) + { + memcpy(n->name, s, LEN); + n->ne = NULL; + n->prv = NULL; + return n; + } + Node *res = n; + while (n->ne != NULL) + { + printf("%p\n", n); + n = n->ne; + } + Node *tmp = malloc(sizeof(Node)); + memcpy(tmp->name, s, LEN); + tmp->prv = n; + n->ne = tmp; + return res; +} + +Node get(Node *node, int n) +{ + int k; + for (k = 0; k < n; k++) + { + node = node->ne; + } + return *node; +} + +Node *find_0(Node *n1, Node *n2) +{ + int i, j, f = 0; + Node *res = NULL; + if ((res = malloc(sizeof(Node))) == NULL) + { + printf("No memory for you\n"); + exit(3); + } + + for (i = 0; i < len(n1); i++) + { + for (j = 0; j < len(n2); j++) + { + if (strcmp(get(n1, i).name, get(n2, j).name) == 0) + { + f = 1; + } + } + if (f == 0) + res = add_tail(res, get(n1, i).name); + f = 0; + } + + for (i = 0; i < len(n2); i++) + { + for (j = 0; j < len(n1); j++) + { + if (strcmp(get(n2, i).name, get(n1, j).name) == 0) + { + f = 1; + } + } + if (f == 0) + res = add_tail(res, get(n2, i).name); + f = 0; + } + + return res; +} \ No newline at end of file diff --git a/other/Vova/list/head.h b/other/Vova/list/head.h new file mode 100755 index 0000000..da4d74a --- /dev/null +++ b/other/Vova/list/head.h @@ -0,0 +1,20 @@ +#include +#include +#include +#include + +#define CO 3 +#define LEN 3 + +typedef struct Node +{ + char name[LEN]; + struct Node *ne; + struct Node *prv; +} Node; + +void node_print(Node *n); +Node *add_tail(Node *n, char s[]); +Node get(Node *node, int n); +Node *find_0(Node *n1, Node *n2); +int len(Node *n); \ No newline at end of file