From dc4a1158f6aca86ad29aef32979f93bab0c1fff2 Mon Sep 17 00:00:00 2001 From: "ada.dmitry" Date: Tue, 16 May 2023 12:35:39 +0300 Subject: [PATCH] meow --- Homework/SC/app | Bin 16448 -> 16344 bytes Homework/SC/func.c | 34 +-------- Homework/SC/head.h | 2 - Homework/SC/main.c | 33 ++------- Homework/Trees/app | Bin 16448 -> 20184 bytes Homework/Trees/func.c | 38 +++++----- Homework/Trees/main.c | 6 +- other/Vova/2_in_1.c | 160 ++++++++++++++++++++++++++++++++++++++++++ other/Vova/app | Bin 0 -> 16528 bytes 9 files changed, 192 insertions(+), 81 deletions(-) create mode 100644 other/Vova/2_in_1.c create mode 100755 other/Vova/app diff --git a/Homework/SC/app b/Homework/SC/app index ed9480cfdb5a8f458a085e302cfbd63738738889..39ab8d736671dfed62dbef4f054a4d21e62a5584 100755 GIT binary patch delta 2552 zcmZ`*YfKbZ6ux(tU3OvZ%pSP3 zIp@rs8El~!nu7^~MZmT7l<>OD z)OP#_GIcpnGK*StIS8#(6uJ#mw}I-0gY;ZVoJYsZrmJ-|Sq(jw%9Q`xq0!i(5uDc7 z<2L=W*S@&m8!oinlR5vHl~=z`vD=`-`gptxgPF+^(yE1a!H6{-mPRCiBO-xrg_H;p zMp4=vkwrgb5>=otLWT)z0`1YPysZ*yZ9AHYg;+71Mf=U9Y!eHq!0<+a$hVz)us~L_ z*3dO1zUm~1*`TF>l{0GLFk}*=Gr?K7@b-iPJOv*h2rFu*?z%Z2%?08O_ydO7z_?G}_> zB?G8YcG-?FQV_0>SK4iFGXDL+dZ#+dxmy@;$e@UC)9_2)gD-_7>Vs24a)u98q+!t- z#b1)jSf%Z1y-R5?S%5-l;J&JcYE@PJ(Kg=;e9U9bS#3?1l(vTR$5`ahX|%VU41I<~ zIq3^A-FP|9PD|5R6t{Dg&UqSatE z!kJ}~@$p*Hk8H9qhs)V+`Q(oj0P9R@r5V3b-syfHiH*@ zVZ_PPw)GF&l=d}R-09r*u#_;jV5sIFRSo#Y&|Br+KZG^AMuS=k?S!ERv6CC{;lp%~ zVnRF#3Fu(vcxMXI<1@JQ2LKW}GX>T0MV05K5QaM_{-zLVh&qPO*cztPE8!c(QfOsS zPL^wvdyGADp^tUHF#3h3{ko1o_ph!?S-DSx)o7GyAV3hTBIPFZRna%)pwD0ApIQaUZmeM{Y_P^MS2J6 zuSgHwQq|i?|3(^zx6yW6RdXqP;z_0Z;kZY%1#YNn3taX*N=JdFh|L#J-i8k5NmU5RwsZYgJG&3*>ef1thVA$!}j{W|I^ zFu^*U%ozb*MgSILcQgz}ew1JwP3BR=QemqCdNSRDD_)l*osa;GWV&e(#xrHggXDG7 zekkzDLclm#jB}eDfVaGE;XFIKaG9qX4+p)KmQfqr^(NC{kmOCY8(QT`xFDaGs*JNx zcOk@sj0I<_1&(KlbP#^ek|p!}G%>7G3_~C#TciOf$bN}#hMsI$GT%lfl9h^(SP}ssm;;@;qOAh0snBPMrJMVY=f+dGxMVFnnRmGVue>4JKe)7-(xs46C=0yt zbz;(fs6p+pp*3kD^cKodqlOk|>0)7?lQ#wpN3tk?dhE>cI{-CB&9nus6v@v0#w&b3 zNX7ZU7xQ!*)D+7x=6#!V+zOu-d!x+uxZ>er@d_FXH3e=cFX4s%eAhrti7Zrm^s<@M z1-&IQ@TFN@rM%M|-XKV&`A%~{yJ1~v{`B(`z;`ZNjnG@F(kkdJ%XbEIb=_9DQkHMI Kp9hKM3;qR?`({J{ delta 3358 zcmZ`*eQZq(7A_a9CU(>=LE9u%vFC!8r(9L`l@0|CM zCQ-T8d*|G9e&^$!bD!^>h@_%ivP2AtOdTPOu;{_%@7RZOwAs+X%f8$;ebSZ#g`Bq~ z&1pJ=GKV%Nu@#?awKk6i=hGyw&5ytU=MG1~-3`KQb7 z7a^)gh=SeJz4()@YYT6dhdPsA1%BKOjfLF@MkRRNR8d@j&WvOk8&F*rz!}pc@Ts{3 zY~~WK7s|{|NSjKyR=93*!aB2`J3un-DRn-CxCX@i4!$tAo41GidZE=4iSW#Xj(PoO za71YkeHN)+F81NUH?UkLMr$Kkc*!<9L(Ep>X&CjhX;bDY)R=vG#SHnR-as3)Sf6tl zQo^QJX%^I#e0b05ETE+u;|QEb$)Jv*9-HBxRwv}=Rf%Z@;7Oe#ew&J~dkGTaGOiqsi=~z2C}QEN4RS2V6D!C6-Ip&Xf>xX;@7~L1 zl~-^Hr!C)9Lt1<|5{mbKCdb36QSz*uMSXl+c?-!X^;J28oE(=Xc15SmHr7N*aKsZo^lUT;zzcQBb345=h2VxE^ zCUGQF6j zQt)NDn2${tp8u2*!00KAj?cz1)D?`Xx=qN7szv8TDT6u?ik5O$ph|r|QRInyTYf4kEjFpt-OXnANmme_6<#}r>$%D$ z=VkRjEXVz_qT;2nGMHeDq#dHj<017=hj>&lZ1I_P!8^8Vxxt0qy6(G;t~P7m$s#Re z2191@W@Fm#!0yHC`PH}K!s7DCvfG%}xTL6iFCk@U4W+j?;0G$l`;~F&E-9`$V$xks z%`FkKeY=XOgmm}CS%c@~*mMP2O~k{O5IaG&c^^OPfOKh3?kH{=rj%l|acNrfNtl(g z=5Qh=O>+rpx=FgUo3`wPoLFa*6Ik#uIet-&)7RBCCMRCR1c!5r|7bhpF-OSFny#O> zb#8mbv*p$8JGS)pZtL!1NE}$vI5}j*u@b5nmpBc)T$T!kFL5O~Pfr&t=>R49spF3&9sP&K6@ihW2Y@3NhBsVojnp4B30S{DTKHx!MP0d3a`p(^Z5k zBP+jdrEUY%dPvI!p=G6$dj|%Pf1V_3euj7lmf8{0yczEv^23YFXoeyGh3>yqkB-|! z9Z}UksPDHy#3&!A{Ar5l`a4>Qyo=dFI$S6Jf*wR(C!~ePJ{DsAiz3CyIoJ|bvH-n= z5UBZ5kF9nNJ^fzK$+%8`PxoG``&qcQO5M+L{Z^-bN@(L#-kqbdht<$m=B_7I& zYlpU4CpR#>v$mKsb#Cc`{dF51bo&fFv3AX4t2eLkuJG2uS9K>$TetKL|K`zC9HjW1 z;f)PH<+ye5QNSlwShTbZIs&%>KImw4aLXXj=*u;>D6_(j#z*abeIMigZLGH&yE=`t zA}}}gaY=a7Tm;okd2qN%1f|IVBTasLif%nPQqa@%2$VEC3XP%|w9pET&E8z2uj`$# zqq!9~#zzfqm}qv0A&=^S8FUleYW9hPy40ZSAQ1G~jcalgdV=-P5%j}E&;iHs$prng o-)GdPdBjiQ2U+e21Xk7CCu%j>uVLq^`rOU++H462yBbRW57Ul=Z2$lO diff --git a/Homework/SC/func.c b/Homework/SC/func.c index 306e491..bd3270c 100644 --- a/Homework/SC/func.c +++ b/Homework/SC/func.c @@ -2,7 +2,7 @@ #include #include -void linked_print(Stack *l) +void linked_print(Stack *l) // Вывод стека { while (l != NULL) { @@ -11,7 +11,7 @@ void linked_print(Stack *l) } } -Stack *add_head(Stack *l, double x) +Stack *add_head(Stack *l, double x) // Добавление головы, причем в двух вариациях(если голова изначально есть и если её нет) { if (l == NULL) { @@ -22,13 +22,6 @@ Stack *add_head(Stack *l, double x) l->next = NULL; } - if (l->x == 0.0) - { - l->x = x; - l->next = NULL; - return l; - } - Stack *tmp = malloc(sizeof(Stack)); if (tmp == NULL) exit(1); @@ -53,26 +46,3 @@ Stack *del_head(Stack *l) l = NULL; return tmp; } - -int len(Stack *l) -{ - int res = 0; - while (l != NULL) - { - res++; - l = l->next; - } - return res; -} - -Stack get(Stack *l, int n) -{ - if (n > len(l)) - exit(3); - int i; - for (i = 0; i < n; i++) - { - l = l->next; - } - return *l; -} \ No newline at end of file diff --git a/Homework/SC/head.h b/Homework/SC/head.h index 50c53fd..6a1e8bc 100644 --- a/Homework/SC/head.h +++ b/Homework/SC/head.h @@ -9,5 +9,3 @@ typedef struct Stack void linked_print(Stack *l); Stack *add_head(Stack *l, double x); Stack *del_head(Stack *l); -int len(Stack *l); -Stack get(Stack *l, int n); \ No newline at end of file diff --git a/Homework/SC/main.c b/Homework/SC/main.c index 897ed20..a91125d 100644 --- a/Homework/SC/main.c +++ b/Homework/SC/main.c @@ -2,16 +2,12 @@ #include #include #include -// Выдает неадекватные значения + int main(int argc, char *argv[]) { srand(time(0)); - Stack *numbers = malloc(sizeof(Stack)); - if (numbers == NULL) - exit(1); - + Stack *numbers = NULL; char c; - char flag = 'n'; while ((c = getchar()) != EOF) { @@ -21,40 +17,23 @@ int main(int argc, char *argv[]) } else if (c == ' ') { - flag = 's'; continue; } switch (c) { case '0' ... '9': - if (flag == 's') - { - numbers = add_head(numbers, (double)(c - '0')); - flag = 'n'; - } - else - { - double a = get(numbers, 0).x; - numbers = del_head(numbers); - a = a * 10 + c - '0'; - numbers = add_head(numbers, a); - } + numbers = add_head(numbers, (double)(c - '0')); break; case '+': case '-': case '*': case '/': - if (len(numbers) < 2) - { - printf("Invalid expression\n"); - exit(2); - } - double a = get(numbers, 0).x; + double a = numbers->x; numbers = del_head(numbers); - double b = get(numbers, 0).x; + double b = numbers->x; numbers = del_head(numbers); b = (c == '+') ? b + a : b; @@ -67,7 +46,7 @@ int main(int argc, char *argv[]) } } - printf("res: %lF\n", get(numbers, 0).x); + printf("res: %lF\n", numbers->x); free(numbers); return 0; diff --git a/Homework/Trees/app b/Homework/Trees/app index 9bb9420a73572860f2d3dbfbf2a024ec22cb7314..0a842337a746793494bd1ba5a5b718d91b0146eb 100755 GIT binary patch delta 5282 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 #include "head.h" -tree *init_root(tree *root, int field) // Выделение памяти под корень дерева +tree *init_root(tree *root, int field) { - tree *tmp = malloc(sizeof(tree)); // Присваивание значения ключу - tmp->field = field; // Присваивание указателю на родителя значения NULL - tmp->parent = NULL; // Присваивание указателю на левое и правое поддерево значения NULL - tmp->left = tmp->right = NULL; + tree *tmp = malloc(sizeof(tree)); // Выделение памяти под корень дерева + tmp->field = field; // Присваивание значения ключу + tmp->parent = NULL; // Присваивание указателю на родителя значения NULL + tmp->left = tmp->right = NULL; // Присваивание указателю на левое и правое поддерево значения NULL root = tmp; return root; } @@ -79,9 +79,13 @@ tree *findForDel(tree *root) tree *del_node(tree *root, int field) { + printf("%d\n", root->field); // Поиск удаляемого узла по ключу tree *rig = root, *lef = NULL, *tmp = NULL; + // preorder(root); + printf("test"); lef = find_node(root, field); + // 1 случай: у узла нет потомков if ((lef->left == NULL) && (lef->right == NULL)) { @@ -130,28 +134,28 @@ void preorder(tree *root) { if (root == NULL) return; - if (root -> field) - printf("%d ", root -> field); - preorder(root -> left); - preorder(root -> right); + if (root->field) + printf("%d ", root->field); + preorder(root->left); + preorder(root->right); } void postorder(tree *root) { if (root == NULL) return; - postorder(root -> left); - postorder(root -> right); - if (root -> field) - printf("%d ", root -> field); + postorder(root->left); + postorder(root->right); + if (root->field) + printf("%d ", root->field); } void inorder(tree *root) { if (root == NULL) return; - inorder(root -> left); - if (root -> field) - printf("%d ", root -> field); - inorder(root -> right); + inorder(root->left); + if (root->field) + printf("%d ", root->field); + inorder(root->right); } \ No newline at end of file diff --git a/Homework/Trees/main.c b/Homework/Trees/main.c index 5a04383..aa24cbc 100644 --- a/Homework/Trees/main.c +++ b/Homework/Trees/main.c @@ -7,10 +7,10 @@ int main(int argc, char *argv[]) { tree *root = NULL; root = init_root(root, 'A'); - preorder(root); - printf("\n"); + // preorder(root); root = del_node(root, 'A'); - preorder(root); + exit(0); + // preorder(root); printf("\n"); root = add_node(root, 'F'); root = add_node(root, 'B'); diff --git a/other/Vova/2_in_1.c b/other/Vova/2_in_1.c new file mode 100644 index 0000000..48bd84d --- /dev/null +++ b/other/Vova/2_in_1.c @@ -0,0 +1,160 @@ +#include +#include +#include +#include + +#define N 3 +#define LENG 3 + +typedef struct Node { + struct Node* next; + struct Node* pr; + char name[LENG]; +} Node; + +void node_print(Node *n) { + while (n != NULL) { + printf("%s\n", n->name); + n = n->next; + } +} + +Node *add_tail(Node *n, char s[]) { + if (n == NULL) { + if ((n = malloc(sizeof(Node))) == NULL) { + printf("Deny malloc\n"); + exit(1); + } + n->next = NULL; + n->pr = NULL; + memcpy(n->name, s, LENG); + return n; + } + if (!strcmp(n->name, "\0")) { + memcpy(n->name, s, LENG); + n->next = NULL; + n->pr = NULL; + return n; + } + + Node *res = n; + while (n->next != NULL) + n = n->next; + + Node *tmp = malloc(sizeof(Node)); + memcpy(tmp->name, s, LENG); + tmp->pr = n; + n->next = tmp; + return res; +} + +Node get(Node *node, int n) { + int i; + for (i = 0; i < n; i++) { + node = node->next; + } + return *node; +} + +int len(Node *n) { + int res = 0; + while (n != NULL) { + res++; + n = n->next; + } + return res; +} + +Node *find_0(Node *n1, Node *n2) { + int i, j, f = 0; + Node *res = NULL; + if ((res = malloc(sizeof(Node))) == NULL) { + printf("Deny malloc\n"); + exit(3); + } + + for (i = 0; i < len(n1); i++) { + Node tmp1 = get(n1, i); + for (j = 0; j < len(n2); j++) { + Node tmp2 = get(n2, j); + if (strcmp(tmp1.name, tmp2.name) == 0) { + f = 1; + } + } + if (f == 0) { + Node tmp = get(n1, i); + res = add_tail(res, tmp.name); + } + f = 0; + } + + for (i = 0; i < len(n2); i++) { + Node tmp2 = get(n2, i); + for (j = 0; j < len(n1); j++) { + Node tmp1 = get(n1, j); + if (strcmp(tmp2.name, tmp1.name) == 0) { + f = 1; + } + } + if (f == 0) { + Node tmp = get(n2, i); + res = add_tail(res, tmp.name); + } + f = 0; + } + + return res; +} + + +int main(int argc, char* argv[]) { + printf("Hello. Let's begin\n"); + printf("\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("Deny malloc\n"); + exit(2); + } + + int i; + for (i = 0; i < N; i++) { + char s[LENG]; + int j; + + for (j = 0; j < LENG - 1; j++) + s[j] = 'a' + rand() % 2; + s[LENG - 1] = '\0'; + + n1 = add_tail(n1, s); + + for (j = 0; j < LENG - 1; j++) + s[j]= 'a' + rand() % 2; + s[LENG - 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 array:\n"); + node_print(n3); + + free(n1); + free(n2); + free(n3); + + printf("\n"); + printf("That's all for now\n"); + + return 0; +} diff --git a/other/Vova/app b/other/Vova/app new file mode 100755 index 0000000000000000000000000000000000000000..a4e631d14d2d8f0ebf1673bf3374d2e4b4562142 GIT binary patch literal 16528 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