From 23dccdfd8dabb6378c650c4ea79b379b8192b441 Mon Sep 17 00:00:00 2001 From: muellermo100295 Date: Wed, 10 Dec 2025 22:43:39 +0100 Subject: [PATCH 1/4] =?UTF-8?q?Kommentare=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bintree.c | 159 +++++++++++++++++++++++++++++++++--------------------- bintree.h | 76 ++++++++++++++++++++++---- 2 files changed, 163 insertions(+), 72 deletions(-) diff --git a/bintree.c b/bintree.c index 668c164..91f0430 100644 --- a/bintree.c +++ b/bintree.c @@ -1,111 +1,148 @@ + #include #include #include "stack.h" #include "bintree.h" -// internal helper to push node and all its left descendants onto iterator stack -static void bintree_pushLefts(StackNode **iterStackPtr, TreeNode *n) +/* + Schiebt einen Knoten und alle seine linken Nachfolger + (entlang der "linken Kante") auf den Iterator-Stack. + iterStackPtr: Zeiger auf den Top-Zeiger des Stacks (LIFO) für die Wiederholung + knoten: aktueller Startknoten, dessen linke Kette abgelegt wird +*/ +static void bintree_pushLefts(StackNode **iterStackPtr, TreeNode *knoten) { - while(n != NULL) + while (knoten != NULL) { - *iterStackPtr = push(*iterStackPtr, n); - n = n->left; + *iterStackPtr = push(*iterStackPtr, knoten); // aktuellen Knoten oben auf den Stack legen + knoten = knoten->left; // zum linken Kind weiterlaufen } } -// Adds a copy of data's pointer destination to the tree using compareFct for ordering. Accepts duplicates -// if isDuplicate is NULL, otherwise ignores duplicates and sets isDuplicate to 1 (or to 0 if a new entry is added). -TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFctType compareFct, int *isDuplicate) +/* + Fügt eine Kopie der Daten (Speicherbereich von 'data' mit Länge 'dataSize') in den Baum ein. + Die Ordnung wird über 'compareFct' festgelegt. + + Duplikate: + - Wenn 'isDuplicate' != NULL übergeben wird: Duplikate werden NICHT eingefügt, + stattdessen wird *isDuplicate = 1 gesetzt (bei neuem Eintrag = 0). + - Wenn 'isDuplicate' == NULL: Duplikate SIND erlaubt; der Duplikat-Eintrag + wird in den rechten Teilbaum eingefügt. + + Rückgabe: + - Zeiger auf die (ggf. unveränderte oder neue) Wurzel des Teilbaums. + - NULL bei Speicherfehlern beim Anlegen des ersten Knotens. +*/ +TreeNode *addToTree(TreeNode *wurzel, + const void *daten, + size_t datenGroesse, + CompareFctType vergleichFkt, + int *istDuplikat) { - if(isDuplicate != NULL) - *isDuplicate = 0; + // Standardmäßig annehmen: kein Duplikat (falls Ausgabefeld vorhanden) + if (istDuplikat != NULL) + *istDuplikat = 0; - if(root == NULL) + // Leerer Baum/Teilbaum: neuen Knoten erzeugen + if (wurzel == NULL) { - TreeNode *node = (TreeNode *)malloc(sizeof(TreeNode)); - if(node == NULL) - return NULL; - node->data = malloc(dataSize); - if(node->data == NULL) + TreeNode *neuerKnoten = (TreeNode *)malloc(sizeof(TreeNode)); + if (neuerKnoten == NULL) + return NULL; // Speicherfehler + + neuerKnoten->data = malloc(datenGroesse); + if (neuerKnoten->data == NULL) { - free(node); - return NULL; + free(neuerKnoten); + return NULL; // Speicherfehler für Datenbereich } - memcpy(node->data, data, dataSize); - node->left = node->right = NULL; - return node; + + memcpy(neuerKnoten->data, daten, datenGroesse); // tiefe Kopie der Nutzdaten + neuerKnoten->left = neuerKnoten->right = NULL; // Blatt + return neuerKnoten; } - int cmp = compareFct(data, root->data); - if(cmp < 0) + // Vergleich der einzufügenden Daten mit dem aktuellen Knoten + int vergleich = vergleichFkt(daten, wurzel->data); + + if (vergleich < 0) { - root->left = addToTree(root->left, data, dataSize, compareFct, isDuplicate); + // links einfügen + wurzel->left = addToTree(wurzel->left, daten, datenGroesse, vergleichFkt, istDuplikat); } - else if(cmp > 0) + else if (vergleich > 0) { - root->right = addToTree(root->right, data, dataSize, compareFct, isDuplicate); + // rechts einfügen + wurzel->right = addToTree(wurzel->right, daten, datenGroesse, vergleichFkt, istDuplikat); } - else // equal + else { - if(isDuplicate != NULL) + // Gleichheit (potenzielles Duplikat) + if (istDuplikat != NULL) { - *isDuplicate = 1; - // do not insert duplicate + *istDuplikat = 1; // Duplikat erkannt, NICHT einfügen + // keine Änderung am Baum } else { - // duplicates allowed -> insert into right subtree - root->right = addToTree(root->right, data, dataSize, compareFct, isDuplicate); + // Duplikate erlaubt -> konventionell in den rechten Teilbaum einfügen + wurzel->right = addToTree(wurzel->right, daten, datenGroesse, vergleichFkt, istDuplikat); } } - return root; + return wurzel; } -// Iterates over the tree given by root. Follows the usage of strtok. If tree is NULL, the next entry of the last tree given is returned in ordering direction. -// Use your implementation of a stack to organize the iterator. Push the root node and all left nodes first. On returning the next element, -// push the top node and push all its left nodes. -void *nextTreeData(TreeNode *root) +void *nextTreeData(TreeNode *wurzel) { - static StackNode *iterStack = NULL; + static StackNode *iteratorStack = NULL; // interner Zustand über Aufrufe hinweg - // If a new tree root is provided -> reset iterator - if(root != NULL) + // Neuer Baum übergeben -> Iterator zurücksetzen/initialisieren + if (wurzel != NULL) { - clearStack(iterStack); - iterStack = NULL; - bintree_pushLefts(&iterStack, root); + clearStack(iteratorStack); // ggf. alten Stack leeren (Speicher freigeben) + iteratorStack = NULL; // Top-Zeiger zurücksetzen + bintree_pushLefts(&iteratorStack, wurzel); // Wurzel und linke Kette ablegen } - if(iterStack == NULL) + // Kein weiterer Eintrag? + if (iteratorStack == NULL) return NULL; - TreeNode *node = (TreeNode *)top(iterStack); - iterStack = pop(iterStack); + // Nächsten Knoten holen (oberstes Stack-Element) + TreeNode *aktuellerKnoten = (TreeNode *)top(iteratorStack); + iteratorStack = pop(iteratorStack); - if(node->right != NULL) - bintree_pushLefts(&iterStack, node->right); + // Falls rechter Teilbaum existiert: dessen linke Kette ablegen + if (aktuellerKnoten->right != NULL) + bintree_pushLefts(&iteratorStack, aktuellerKnoten->right); - return node->data; + // Daten des aktuellen Knotens zurückgeben + return aktuellerKnoten->data; } -// Releases all memory resources (including data copies). -void clearTree(TreeNode *root) +/* + Gibt den gesamten Baum frei (inkl. der tief kopierten Daten). +*/ +void clearTree(TreeNode *wurzel) { - if(root == NULL) + if (wurzel == NULL) return; - clearTree(root->left); - clearTree(root->right); + clearTree(wurzel->left); + clearTree(wurzel->right); - free(root->data); - free(root); + free(wurzel->data); + free(wurzel); } -// Returns the number of entries in the tree given by root. -unsigned int treeSize(const TreeNode *root) +/* + Liefert die Anzahl der Knoten/Einträge im Teilbaum 'wurzel'. +*/ +unsigned int treeSize(const TreeNode *wurzel) { - if(root == NULL) + if (wurzel == NULL) return 0; - return 1 + treeSize(root->left) + treeSize(root->right); -} \ No newline at end of file + + return 1U + treeSize(wurzel->left) + treeSize(wurzel->right); +} diff --git a/bintree.h b/bintree.h index 25e16b2..7ea1ff1 100644 --- a/bintree.h +++ b/bintree.h @@ -1,27 +1,81 @@ + #ifndef BINTREE_H #define BINTREE_H #include +/* + Typdefinition für die Vergleichsfunktion. + + Die Funktion muss zwei Datenzeiger vergleichen und zurückgeben: + - < 0, wenn arg1 kleiner als arg2 ist + - 0, wenn arg1 gleich arg2 ist + - > 0, wenn arg1 größer als arg2 ist +*/ typedef int (*CompareFctType)(const void *arg1, const void *arg2); +/* + Struktur für einen Binärbaum-Knoten. + + Enthält: + - data: Zeiger auf die gespeicherten Daten (beliebiger Typ, dynamisch allokiert) + - left: Zeiger auf linken Teilbaum + - right: Zeiger auf rechten Teilbaum +*/ typedef struct node { - void *data; - struct node *left; - struct node *right; + void *data; // Zeiger auf die Nutzdaten + struct node *left; // Zeiger auf linken Kindknoten + struct node *right; // Zeiger auf rechten Kindknoten } TreeNode; -// Adds a copy of data's pointer destination to the tree using compareFct for ordering. Accepts duplicates -// if isDuplicate is NULL, otherwise ignores duplicates and sets isDuplicate to 1 (or to 0 if a new entry is added). +/* + Fügt eine Kopie der Daten in den Binärbaum ein. + + Parameter: + root : Wurzel des (Teil-)Baums + data : Zeiger auf die einzufügenden Daten + dataSize : Größe der Daten in Bytes + compareFct : Vergleichsfunktion für die Ordnung + isDuplicate : Optionaler Zeiger: + - Wenn NULL: Duplikate sind erlaubt + - Wenn != NULL: Duplikate werden ignoriert und *isDuplicate wird gesetzt: + - 0: neuer Eintrag eingefügt + - 1: Duplikat erkannt, nicht eingefügt + + Rückgabe: + Zeiger auf die (ggf. neue) Wurzel des Baums oder NULL bei Speicherfehler. +*/ TreeNode *addToTree(TreeNode *root, const void *data, size_t dataSize, CompareFctType compareFct, int *isDuplicate); -// Iterates over the tree given by root. Follows the usage of strtok. If tree is NULL, the next entry of the last tree given is returned in ordering direction. -// Use your implementation of a stack to organize the iterator. Push the root node and all left nodes first. On returning the next element, -// push the top node and push all its left nodes. + +/* + Iteriert über den Baum in Inorder-Reihenfolge. + + Verhalten: + - Erster Aufruf mit root != NULL: Iterator initialisieren + - Folgeaufrufe mit root == NULL: nächstes Element zurückgeben + + Rückgabe: + Zeiger auf die Daten des nächsten Knotens oder NULL, wenn Ende erreicht. + + Hinweis: + Intern wird ein Stack verwendet. Nicht threadsicher. +*/ void *nextTreeData(TreeNode *root); -// Releases all memory resources (including data copies). + +/* + Gibt den gesamten Baum frei (inklusive der gespeicherten Daten). + + Nach dem Aufruf sind alle Zeiger ungültig. +*/ void clearTree(TreeNode *root); -// Returns the number of entries in the tree given by root. + +/* + Liefert die Anzahl der Knoten im Baum. + + Rückgabe: + Anzahl der Knoten (0 bei leerem Baum). +*/ unsigned int treeSize(const TreeNode *root); -#endif \ No newline at end of file +#endif From 5072f82928df10e6a3054db0bd37f227af0ed7ca Mon Sep 17 00:00:00 2001 From: duernbergerjo100488 Date: Thu, 11 Dec 2025 08:26:46 +0100 Subject: [PATCH 2/4] Push erstellt. --- .vscode/launch.json | 40 ++++++++++++++++++++++++++++++++++++++++ .vscode/tasks.json | 27 +++++++++++++++++++++++++++ bintree.o | Bin 5840 -> 5736 bytes doble | Bin 18384 -> 0 bytes doble.exe | Bin 0 -> 83145 bytes doble_initial | Bin 14936 -> 0 bytes doble_initial.exe | Bin 0 -> 67469 bytes highscore.o | Bin 10088 -> 8645 bytes highscores.txt | 4 ++-- main.o | Bin 5440 -> 5965 bytes numbers.o | Bin 5240 -> 6253 bytes stack.c | 6 +++--- stack.o | Bin 3320 -> 3927 bytes test_stack | Bin 9632 -> 0 bytes test_stack.exe | Bin 0 -> 60636 bytes timer.o | Bin 3912 -> 3080 bytes 16 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json delete mode 100755 doble create mode 100644 doble.exe delete mode 100755 doble_initial create mode 100644 doble_initial.exe delete mode 100755 test_stack create mode 100644 test_stack.exe diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8f4782a --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,40 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Debug test_stack", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/test_stack.exe", + "cwd": "${workspaceFolder}", + "MIMode": "gdb", + "miDebuggerPath": "C:/ProgramData/mingw64/mingw64/bin/gdb.exe", + "preLaunchTask": "Build via Makefile" + }, + { + "name": "Debug test_numbers", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/test_numbers.exe", + "cwd": "${workspaceFolder}", + "MIMode": "gdb", + "miDebuggerPath": "C:/ProgramData/mingw64/mingw64/bin/gdb.exe", + "preLaunchTask": "Build via Makefile" + }, + { + "name": "Debug test_bintree", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/test_bintree.exe", + "cwd": "${workspaceFolder}", + "MIMode": "gdb", + "miDebuggerPath": "C:/ProgramData/mingw64/mingw64/bin/gdb.exe", + "preLaunchTask": "Build via Makefile" + } + + + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..dad5165 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,27 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build via Makefile", + "type": "shell", + "command": "mingw32-make", + "args": ["${input:target}"], + "options": { + "cwd": "${workspaceFolder}" + }, + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": "$gcc" + } + ], + "inputs": [ + { + "id": "target", + "type": "pickString", + "description": "Welches Makefile-Target soll gebaut werden?", + "options": ["test_stack", "test_numbers", "test_bintree", "doble", "unitTests"] + } + ] +} \ No newline at end of file diff --git a/bintree.o b/bintree.o index 47986c50d8be86e71653c39810f7e35b91de78b1..1e0c0fc34907167234365d92d748cbaa9ddcd288 100644 GIT binary patch literal 5736 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 E0;d%&o&W#< diff --git a/doble b/doble deleted file mode 100755 index 88b0bc98766794fa265b0d35f39704af7f396269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18384 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 diff --git a/doble.exe b/doble.exe new file mode 100644 index 0000000000000000000000000000000000000000..8c669d39161bccb224078f79830b7915a4243823 GIT binary patch literal 83145 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 Hm(2eM`nic6 literal 0 HcmV?d00001 diff --git a/doble_initial b/doble_initial deleted file mode 100755 index 69c6a2e44bdba72f61f34951a011b70f349abb5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14936 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 Q!3r{?%e|Fw@4`O#UrlB=%m4rY diff --git a/doble_initial.exe b/doble_initial.exe new file mode 100644 index 0000000000000000000000000000000000000000..a91c0092058298714d1791bdb0463e3b28e2d081 GIT binary patch literal 67469 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 T4jRQ0%h)d0y&|0H!TkRMhgmz~ literal 0 HcmV?d00001 diff --git a/highscore.o b/highscore.o index b268078d74882b61cda7faa83b4f2c89ce1d91d4..cf5a127118c57c231a7b63c1321c00403f516f1e 100644 GIT binary patch literal 8645 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 literal 10088 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 P9I)tB$f|0=e8&D87%?DA diff --git a/highscores.txt b/highscores.txt index 7f7e944..41cccf8 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,10 +1,10 @@ +Player1;19887 Lena;19811 Lena;19702 +Player1;19578 player_name;9981 Lena;9980 Lena;9978 Lena;9978 Lena;9976 Lena;9975 -Lena;9971 -Lena;9965 diff --git a/main.o b/main.o index f167660d920e04d926c8028138611c7eeaf113a9..a04c31b9e0d3615a8831c155da59398b3ff9c4d2 100644 GIT binary patch literal 5965 zcmbtYU2GiH6}~gGcX!t7f5-6;kc^4#I1ukTiQ@z(0Vnptx+TFPu|lZnGTxoton&`* zJ2PvWh%~7TNGlU5u2Pi;)aIq)rHDT80184BC;^E|R*Om=PzmBMh*qLiRg4;uo^$Wa z?5rKB553afd+v9>d(OE(b7tA_VM>MHgy$y+HYZuH_AlMN8{> ztH^8N+%Pm_WN0ilTs!tl@OgWXkVhR}J>xYWitQMwAzp;|q(}_}_JFsGucWKN-Y>z( zpB#Izl$(YIwKmFux;vYgFGs?|MTG#QpBAo$wS;KHh885o1Jf(4cc?2R3oPEm==7%29d=xifE6(^ac`3ov-3vCYIP7Z?1s#$;wp-Z3A=lrhnL1 z!!Q_BgG?3wh8q}@6P5V&#Fh9pfXS8kN4#0Z=Id6VkAZ+eKllC3o0a(L;+a)(?)uNp ztX_xpoBtRV$z9k={Myp=Dpc03#9a^*nH(t>W;N3qB}(7!G?}*4tTw9jS<3!W zUVTC{6+Vp;*N{Hd*bore|$sUNh60 zF{kl9soXxuOZQqhK$m&Vq$BNT-UXshzSNzHTUe(UE*c zIjWs18)jdXN?%!-DjUex%+nB*9mV6w%7dDohKcBwjVwb?&4A&8EK&L4fF!_!T_Z;VT0{!IDGs5AkRNk5tX%;a^BlH0IMkic zehPVzf&~ys;{!*gmGK>WlpVXGJEKF&V8JdM+5ueHozPLuRPKOLOcf1P8O)M9a7YL% zr=UrpEVO80%^sJ$!72U8wL#rAFh#@OiG;LTmKP^C+GQinf z4%JZVUO`8K?19X^BnQ&P@@!rsQXr7Y7gccC9AGXTyeX*{XUiEP)1JDm@boq(r}An_ z%N6smErf1~AP8?0x%K|Z2jhgsx(EPrDzB+#!aH_E?05*^0Et-YoaVzfoCH|FiqIrf z^(e|P#d#k|Yw~S z$DL9%8_twW*qIFZR>0tN)EZb7+2rUpXzCFSC6j8(v~l5+@Q|bkeXIlVUm%$UxB(`? z_K&_SHleYwl~Roi35(cy9eKEp0TOmxe#cyXSXHzaRNWv#KVK&pgylIHgGG401x|fX zHM1$w--sr~W!9Y|{oSY%mt|2~(CzVJS|bBt&Y0PFmopx-JQfM5Irk7usdkR+Xve_B zBD z+#p@c4Mm0fx?p?+hi~ngY}?-@08#eAJwc9z9ju4$qxbYQRmpYzERcw+7r|CfaBCMI zR=U+al8D+cqQ6+(AfFn;^-N2oD0?H#cCMET+k}z3{2p0#ksd zb)yf5=iL`2%$@t&5GBrxs5>J<+Wkz799@rfKFKD#k%xwkI}+rKa2ABl+5vugSFNgQ z3zm92{P4uV3bNX*{O=JL!}bn1UKF^8Ko$hyKaCC8;Ms*A2%E)8keA>mg4`7R14!h3 ztp1GE$5?%Z)j!}TPyx~j_ONu*@N2Ygj)sS5w|s&&%8PIg#DJjCE^Hp5-N$HsfeHss z($MELJV#r;pkbSCiO~jmKfMz;k~~Pek^2K0ewqrG7G#BnPtXw9%pn|M2`4 zRW8g-nZ=Xv36tEFoG8Kza^{$(7It$PEX0_F7_$)bEX4d4VrwkK)>r^_)>I1g7zAoEaj zE#!P>#0wtwl851A(+9r*`4nn}NfInT50hF!;#Rsr>Sx%Xhs}7>Igl{20GreRlYZ@K zUjk_x!>)jI7nA-D(%npIfaj9?Xa|YUZJUSf@UR0QZD%76frOW?0679ulu1WHiZKZ) zc8`@n?@E|*@H#9pPk7CgNVBKK1HiTTPT<BD^Dt%}3(kBK{31m0FdV_LgooultmI+Qj1FJlynKI?kgS`f9L#NSEEWNLh;R~a zRTcomM~ZP+qCgftJRI@=r-ddY0beB;WwrSK&jKZIsybKl|Ca?@b8C+8e=OJ*;3(@X z`TxVBjMMA7@LK=>SGd}efSj60n}5a$x$ zo7WA^l`Y$JMTC>A&(3!5>C>lORR&(<8u5Rs`|k$-kN^MaG?~;3rR3TxW9^01cV(^K YYHKdSHP`1g*X%X7@ijO2wKx6$0?|J!Z2$lO literal 5440 zcmb7IZEO_B8J@fItnYlb?~LmNNCHcW$p^6y9B?9I2*lp#3=X*11OrKy_1*ez@p^{ z&e_M=QQMJcpLsv#nRjM)-kI~C{`JY1m5liU3=h-_)MNCJQBfA521)*^QsWs;6@7#Z zPDZs_^ix$^-){>6psIaJf8VTJY>oQ87V#0~sXE4%k*b0{Lr^TLny~D=VWxzloUh0e zrAeVIrC>^m7-mMJs!4soNvYbvKwclA_&RrP+Wy##{drm-l(QbNSWq-(;TFmwpJ5JW z$)%jHO{~`f!TVRicV+=&_@go}A13V@%lW#+{N51ry%~1hN*`r>S}vE-RZ|<*EqIml zHH5sb#aH$l@m@;^=jF=|>`RbOIp2ifTP_Gz*OoAO&3XCU_;OmJobPlQ-;V#0&pwcw zcfM~6zDpvk1OJsTksU@{w(6LphM82=?#|K~y;S8%dxdgigfV*68|ytpvuwV4S{=;e zZFn8Zzvn5zcS7*}Nbm`f;dQ5rZNlRBmoZG2v3&iGiSJ{-_+C~;z25zZPpEE*uLb6X zsGbdr<3|7}asFP zPUB;fzR1x>(25tFsrd2r+Yrnd_5s--bwY|CcWw&Jgfi(`#;2+xM>$+>d@?;fedAYn z6qK9s@!v+Dx->Z099epl`m@sUCLGwurdZ_Y6R?2#W2}Op6|oeQ$#u%j$oM_vP*A4g ziN_}kYmUK}Hl*-{)A&Un0=e-fMuqK_S(^x;eEgov%D*Wb%sM{dOkP%KXv}=dA33_x z9gC)dAs@!5lkq|{ethlIv#i4Z#sg5rkMpMpCX{QQ@5Uh7SL2rzdSC3aa>ax51ZRBX zW9I|Ml(Uf|wDG?=cK!prxybh}LiK`j_LML3th2NZ%9Vn0VV!a%@@$OA3S(D4i$s-+MYaj$oRH5U zi1*-f#^(-ugW@VU7YaMBz!1Su#eoZB*IbXUkg;Is$qLHHcp*JcU23#gqrSmkFcIuf#+Vhf!vcto+oXqBOdd8MVvU%8hL6p`8&^3wH zP&S{}hiu_*m~vxtYi3aH)rTB2so!hfhXDquY07xYjgH*onB=eL4i?RV7H`4&jX z18Z1UeOq{4*pF-w@cFus4=R>H_Yg7xU(N!x8^U2UC2EGl8_=wz3=(VxQ#eWzN-<_er zm{8324Ke=@$hb5Vcy5jn^L>?!%R+&|9HXE4-zDP%p}_Gu#zoBkcQURH1%5Wi7-4?8 z0r}R20>7MNypQ>t$k-7I{AG?&X8z4&><$IKoMZe3^QXwTEfm;B869PIo)5Fipr>O@ zN5l8Tm-Gz&88jjP$^A>IXYd-ND*s9Qev+y_^rYMdlEUQ4!Z|@Q;&N1xWg+!{+--g8 zvDrIZiTYQ+Bs#PKL7m%0rX?;J3%W-J49}DDiQDM8q8QPhQYp9BmA>#I%IGBBOPEUN zLbMq2Iy0D-PbKIv!u0)y-H}b|vu8q&W~Z5VUTmd%Ued{BjD%+EY*^PUC$A@a^+eW8 zS}d7$XbKKi%pGNBOeKT4W2u;X$gp_trZ`?Hy=Au+e{7M?$B>m>WDE!L^y`bKckMg; z{XX~C;NZQCmYmuBg6Zrf~a(#P`G4Vjilxz!#5jE^X$w zNogJeE|%Wo3#FjUBhq@lNb2XIcGyqxY84P}=S<&ZAY=d5~=ARCg8rHecLMo_9(q zUL*aS-z~iZ;|XaG_l2)=_Bloh?&38g=(U;Gp;xQ)G7s5&0Y>8vZ`i}{KFu4XBm8!0 z3%_lAl*^-hxpaa*JQ#TF_dFD6Yv;1`245n*2HJIe*^|6pYUg$R=(7dd%@`YFH8@be z#_w<=w-Ll{z7n>Ec3$7ltEERU$#!1d&Q~CS78pAE`68FaK#zl%PYou4hLpe7a1&t4w~nOx{-}Gqv>0RTFs~2Vn6Cc5U&Q-%w0VWOOZGs<5;X zy;RO*wPdMm*|=5o8N)ixe#_40M6>kFS5vwzE(dVIub_O6sdUF->R=B4QM3n{T0|?M RnGn&VbLOyCwdCxO>_1piqk#Yb diff --git a/numbers.o b/numbers.o index e87e9fed808d452a7702ef153005d1d6694eeb9e..782422483b6fc37854303ecf9fe6a227ef57da97 100644 GIT binary patch literal 6253 zcmcIoeQaCR6+iF!UE9gCYsX2`q)_6dfl_GfG)+T4*Fa+Gl(tkO8L0?z9s4D5@ki#5 z61tV4hL0I9sF9e4CN>rR;g1Q1*gu6%S}AC)7?UCd3?wvFTG7h7p$sY!X@%^Zd+&R; zlb}tScBS|3@0|0y=broV?tS;hpL7GIqYVHXInp4IH>UC&i`T0*fE!hSck6__3Nt?( zIueLS^U(_4O0X9WoePZSax2*?b&nBms@mZ$B)rQiSpdDz*&CQ#&U4xUhJAwT!Hjsp z?&`8h^wp2N&n3^xdEUE%n|rE=KT`l+)vHwK4|!WUtCS?|#qN8iUZ}B)1h0E*6>lvX z9!B1al2>c;w%$?2TS?&c_H3&%)nI(H)X0j&dE2TRd;qc?CJIljX|dH;aoV>q2OObXZt9R}5Xg5V}U9*X6U>bM0~mwx)z>kc!H|sWt6$n(ECO2bm*Fbu})u6wui2H zP9Dad=QS12qjn~|Sez4){2j4n%>XhQNF=v-%Q}Dy**!L~?wF>=r1*XW`=!J>$6h1DQ)4XfKhw@+H zTGlS}mvLX{L_C3O0>c^+f_v}5A%EZIJN%os1iAv9{*F|>kT!P5GFhVwg=jW5u{)iK zWztc9$2hE`BDCC?iCmh=rr2W>(Ja_=iQ`5j54QE2(rB|e9m!03+|OTybS^QTHsbz7 z8VOETws3{&$W3Ijd4DxcW8A0-Heq`tl24?Jo^Gn<2kU=~)!0cv;?oW1saDNVMCRi3-tR!Rk~rnasq%zE-WH z8r~!e4_qHN^8JO$WFi*L8!*JjmL@tSm3(7Tp5KRalcfu(Q6rm!p#X{MEU=`JhM~Ku z26fh{#xmGP57ghwjYrh1kt-zg5c3Ip($OO)_$YUZWfBl?6vhec3ffpS67^Wtz+eu_ z>RLSHk#7KK{L+dkp#&Ur8w=GEk4gfHdw`^QlSLC#5hFTzr;B3i#1PVrZ+UN@%5`bdShzpe|6S zM4^5IO-&l2QK;_`*oo1?YI8KyW24Y0g$Z!Q#Ai4(fGa``xo(p#%dXpKsf$8Qd)al( zmI~K;rE8bvdJQcmpn%f$fpkfk>0Wt$4Ba+G1|=y-BF5c(qa@SE1{yD_Fc`q!NVOYR zyB)3SPJO#RP_N?ZY-0Ia%&x6*?R!AQKT6)Hou*WH3W;j2e)x-MEl+WP94L_`e% z;PLAizAggAHNaw8N^;OBx`E&t9;#JHv_b^h#CwyQM4vZ@;e_%dECieI5i=S4zamxc zXBBE_L^1;>>_w%bDF0gJri{KUd=Rv#`w>5bkBZpixQGbe!$V z9cLYwD_&8&E=6-;+O|g1146`m_ucK@iYuL>^>TM0| z783JpozT|pKg*iVvbxjcv%%?Sx1(OQWro?!MA*k#C>vuNY^zTZ!ZvK>d4TzZr3Fi4 zIoC;Ewj~(G1pn9+;fyU zJ{5hIryjWN1+xd(Y3Do4=X`}V7O3goPIS17-EflWP9IylpF4FQ77f}c+OdzV7lEMr zVeWpnYR93M%Xc6KeLF^ma=6!w9F4|})hEf2v;55XlKf=fK0c|03U_2XGTm`bF_AMWY4 z@~Le-k)G}jRCRFEmabqT9ZMGQ$D-U0TKfVM6$<(pjAiqv8^x6z_kBdUd=`Ck5KksX z5$x^j+u^@e)-ajLC8j!Z#zaTfIM%tze^()q%=P!ZyhctqQox{3F{|_S~<^yKO`GCx*gH29Gyla{Go`;8!klX(L^NE z-I0x-EQA%W9VCy&M_6$;lRDY}1 z?XgfFB4Q|TAHFFH9X`PJ3f(4bn?MN*{n0|7Tc`yaEO@&t^r(eCwooT-@`88RLU=g^ zbUCGi*)IwoJrOC5fI!qrf#@bjpdA(}x2WIJ4Or-)g@zG{2&kWL!bbBI2l3x13asO`*-2W>Gm+-f)tSmEx(q-9!f~b1H5&aRMM` zSGf|2DsMG$LP(Bh8Sh1@p}AsH=uVU7N_BcgiuhxP9Jk!f9hA736tN zYG_Qwq0gj{hMxjW1s``3+*Xvt;YZJ9oHbP(dHR(sDkV zA0+(tr#A22mRGYp&QGM|uN2JuW-es&c%f)tjO4|5U2=b4lU`@7hWBfTugsV(h?h(y zgti#(Pm1Amnv#yTC7&pRrLhRlACHH1E$WZxNhpi)4$F8>OaH6oa&ng}h!^WU7$B2k zys}cmagFrvmCsqSL>9yo@x}dtVmxON-pNmhml}>QxZm9p@7pq<@Bc@>2|NwMLDS}+=OKA0&Plv05>K*p zF9z~+qWSX|4n+lGasC?R`FL4IG3qe9msc707Tmn}nju(@ZX7QxZZ;gqh~#zfqm<2p zj)D^WE_7;Slkc>5nHo}k;@0EIUiV~X+Oi`zG9x$4jtnj48B=c&!t_fBE2rMbj(INr z(L6;WPgb4sWJac#XoW;^1_iQm^FWm_!_th+{3(nUO1) z)skUuWXiCByD`b{W(?|SbZPy<+}vD_mQkm2J0`N#qd9dVbHS8VC#Ls8C47xQ5!7F@ zJ(ms3%em@NV@7+({#-cT$V|a;JTo%R94B{T3F$qaxo9%HFBv}LxsuVWdcj~W-GLe> zl%Bj;K#pfF%mH%xHN--xkefpKv+6DQ-|}QGwLSfIpJ+};?Frf$6VEd{GV95vr(iUj zV_Efmu^J|mIraTkb<&ZcqBEx62J+lAB~8jtN;w_IX)469!3gzjEaa$dm-v~PMi17= zrf2X7W|`vzU82m$433XPAg^h9syTIL{^`j-wL-)1!caWzTzZxq-tt`hgV{57k>Zov z9zpCg*>?)hg3yeq*J!P~M+;A|Rh@BU5GydTI54 z9L{N6FynOGJqE91{X418sn@dVZKMKuZ+!Y~N9{2<{2%jeT5P)CUd1i;<45ct9JN<2 zTWMcxT7uURDnti@wX9(l`x7=BDnbd>3|=q9iW81Yl(yv-`{TA&+XE{)sy5-{U=e3# zDI#a!0msAxQC==XPmgL#Fd6IQ2PNo41GaTIfd$kP#7f_ zs_s5gHA;+K2Z?KXl4>t2Rl!j6qr=oAP@WVhKB;OmRP8D9>yRjIgT#4>Lo2%?ZTEpO z?Xi%qlvcoAzHC_h*R7Gq^?@`KQbe-(LE&5OTkUi^Z)6aP{I zp|wT)H3HJI4j8<|+=W$b&tPZ+Z>}is09kIfR_p|Q0&eCqR?&rd4kl)swStl^=H->l zOn&BFRYva z=IRXfCj5zESGzu_hhuR);o2IDMEucUCq4qYW3h13)z!W|>Du8Be74KyOa>3Jf~l(~ z2^`n3KN<}k>h-51{r*HM3Xt|#ARW=8sibRHA~fhvxweGD!F06W)s;#IL+OaNMO8ao zo>*WY85l^1byt^;Z_1ROSg$?R)x6>H<`!2+v$iYYKjiAx{gDk?d#pFCvvf2W>W}Kd zx==L50twxp(svqrVdB#&q4#t^)32x6)A4X906qIcGM2y>7d*5;B+ke)tVi=XV2M~P z#kv!^zB3loS(JvLKjnu_Uy3C{{R0@0R-J{|pg+t)Ng%UOaEKjbDZu$zFXU{n7XieF zSwc^y!zt$J+U&uj5~YI51-%fck<29TKAkCg2~cC-xo5@x`q@>TKYAnn8}+`I=_}{} zdK~>2x;WsVUm^fBaRfncN?u$k@EasA$_e-mbZYr{r1~TAPz?W#4eg0~HG!kiUT9wy z#v!NgIAgDbiv!9UkB!=X`J(%c)-S)>dUo44kN6-vg#Il08Fac16dPTtHK1rzF-b)C zMT**_72TQ|h|%c6kQLnpddbaeR9exDu|QK;juz4v7MF$eh2>x&eLgFu!@HSjsM1tf zzQ{_yv1l8s&n45d%UkBi6yKNmL`+wANC3&1c`2Pviyxf)j;dTJ;J4N4jAbzg{#plwI*I(_ByvJ zUS6v7^X>2Q4#meCyu8ZCE0yg~_=IA`FSt!P&AF31lzsf(3}2Yj8KOaq@eVO;`<6 z5f1kvhylLd@M?tEi?}yp)mJcF z#*d(yGVEuSm#=p7W!R0Amt(&W zS5t}*8Q;g(S%zs_r+Hb?2Hn`;Mj70zN5}t{{h7@;h;+E>QD*Sv-f$j=4ZjB)ehdo5 z>Tij2%Nh=XS|L9RA?{McUQm3!H>{NO_rM_eZ$Sy?hoBtvEGXLQ7ch`LRVUQ2hR=bb zayL8#O1OUm4nhA;(osoUBrTKl1K4A#T$1#Al6obrm-K+7ZIaeW3L^YBN{Y3a9f0|| zMfHLBd>vW}p574owng&!I`%O50yXO|;`bNvdy4p@MLb~@;tdz^i6WlfW`*`l6YpfE z6~42z`LA=s #include "stack.h" -// Pushes data as pointer onto the stack. +// Push Daten auf den Stack legen. StackNode *push(StackNode *stack, void *data) { StackNode *node = (StackNode *)malloc(sizeof(StackNode)); if(node == NULL) return stack; // allocation failed -> return unchanged stack - node->data = data; - node->next = stack; + node->data = data; // Set the data for the new node + node->next = stack; // New node points to the previous top of the stack return node; } diff --git a/stack.o b/stack.o index 014f77e69daaa29e348d64c7ee0925c8768b2be4..3d96b0c3663936e45af3ad80c7ffae75efd6594a 100644 GIT binary patch literal 3927 zcmcgvO>7%Q6rS1j#G9<+tmCRlNNBdS^amxjo4+P$3u%)Q2WS+vjSwivb?lAp##smd zv>^})DN<=v4z1J!LKUjG^a31^5Jl+$R8+);141A!a4AxyAOYf1ghY97W_RpOT8=zv zXTEvwdvE?{XVMoM35pURWEV$15-D3tWsXJiJ7gUSA*~IftU_jzsWXvuvYZsEN2ViW z>hs8Ksq{#KV|WvJOWuH8U<+VnH8MhCBauZfF9!BO;0-wKgRT(dMf++T0lo!&$O7*p zhi7n}aV&aZz(YJq3HgnAR1gn%y;xIKuyoW<$fPcG5MJ>5`l}>B@4@#f@MayJ=JNUv zdU)8LCN$OvuXkXuMnlLSQ0jabZ_wM}Dc~9P9#?4J)JSy5+rFDXIRm_pJ?$GgHXUF4 zCBFJ=EWUQah_6kzeufRahw)cW~_AMu9XF#j{$8ieOTe!P5H z#J*f3R8yID(x*}wI1lzI47Ig7Z2JqCfM9+RK3sR0-+-^x$?rmL!nX>GgF#e)#6Lbc zZH^u|XddW|^h9E2_d>a1TSrobqSXV1WHFUJVi!^cJ85=j$m8h3{Sbg)NLMJWOJ$Qq zqLp&XR-#PQU0pWVsOHZX?2O5iie1WOY%6W%>@rwb)xs5uzmzQ$%chs+W8CNyY=Qk= z3e{wpw}EQDbfGevw+Qw5=JJIk)Mog2ZH}I=MMKezZrEWyzKI)k#KdRgkrQl*LO~-9 z8e;(Xa#WgB#DTe@Wf5PSVw{Fj9d~M6Napi}6!AT#giv9lC4oZ|Oy#X)@l-jPnkRHm z9Zm?!5s?vk?KV&qJO=i3aCn6@ec~8RCs%osp4uktS(v^)a5Bn;MM8J@u|Aw@lunUB z*uUJcJGMJvNoWxrngdvN7tCSlFa*njx1+h;aS+wE7;d%AifNQ>>?H3(&VY++ky841un{wuE&?BbPUShk zZ^NemZen);k#8{h9+RKoqxUd@T~RM8hEfaL{U`JPz>G@vLl#(P^!a(_Ux(s3#%>A4 zS>|5_1q)Ret@N;lb+#?W>Tj{8brxD-^mRpp>iL$L#6?r$n}?^76d4_!nJ!ty(#+Xp z+RD$26;hQ2%PyB@CVCQ6#pHZBH(yzpnJN~}TJz;ZZ(^(f=fKQqE4k1wFhq#*2vHs( zDkDT|BSbevh;E7i=1eiUFb4OI=t9oUoFC|u`O@G(VxX@ZRNdUv+Y`;%seHxl3-rS6 zjmWbEPux_o9La(uozKkz7#|%SHupKP77L}^Qg_M9b{DO4u`csiC6_Oov#*&aa`yO( z-B?VQ%th>Vs=VJh&S5rcWE*<4l9>7MV=lqv2@KxS)(S)+yt6fL-Oe zcK7ITdFKU9#=Gc5bk8K0_wpv*<|EPNEjhgH5N9WRKC%qy6C8al5dZ>PjHqCD5iWnc zORD@oD6Dv45D3RXSaH(`U57-bwBoo3>pqEaiwR$>15O3_GaQ1noug+Y8U=*Dl$?ST z4kF;y!FacE)GyHrAi=vTb?-~vcM@$#D}#+DJn$YY;yo*MFG*b;)D+^ixjm_kiV zfJLB~M0gVux?zc`JsOj`NkC2u0O9QF#FRSZ30++3@=~`bbyubC9jS}V<=~es{_q2Nm89D=_}l#5b>C2ZFXsi}QyU{ICb#T34()V?!d zsDV?pxv2Jyf!+`0)VwczoP#UNE46P6d;+Kx=PKYOLFv4s!5LR6zATI_oK;7I^QKaK zRcw_jjtW<{s0(}OmFrFsuTLt)*95Y?@_|#tJB>=Wwgt_fIvl)LsT5xkTjeW9g*{d& z?x?Nut)t?5lHP=pw>{3a%wfT5A^h?t1EJ<;C`HoNY$cP(*>eRKCue8jsFkH+(#}{V mx0uh_mWxZ}q6<--;N>D-e|9e~FT18W_*qz_<}&zyRrxP%6E*n& literal 3320 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 K#M+U75Pt$v1IVNR diff --git a/test_stack.exe b/test_stack.exe new file mode 100644 index 0000000000000000000000000000000000000000..b2c01994304c80ed224857f18a624473eff9e84b GIT binary patch literal 60636 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 literal 0 HcmV?d00001 diff --git a/timer.o b/timer.o index c5283e861dbf012138784cf51293a2e239b7b589..80d7bf24a1e55897ea8c0c18bd445e104a29e2c5 100644 GIT binary patch literal 3080 zcmbtW-D@0G6u)<7C%bi%?53M)qt;AqOs!;RH=j*YYu0Q+l8PnR1QoVjXLl#N+w9JS znc2DqDPpkF`W2s~*asg3{{x>Cqm^1kL`3=~_#%iFlz>oBjOW}tGdq)1eDJ`W`#b0S z?zvxcKS~!n3ChDNMyt#a4D>I_-fR0@{m zC&c}RgI_{kGnjBc#J-1i{gNT+jIz3$cMEtooc^^z1;#UjJZv{4`m-T#A(I*j`qn5R z-M|asKtZs`koZ(;aE#fmdKJK%A=lz1;|-?+PPFz(ge*GwpsPIJ$Y_A~E?6_bt2jJ9 z4rq7uXn=PogS9(09tiya){l_SFN`-H9Pk1VKE}p;!sg{zuzwYZcfcIK@AMCco*|j3 zrMXK#&8^>(f5!TkSc4mL>z~VKt~rr3i!8@}+uVvhviTZgfb}IK^qFfLOlU-uB10jO z!oV1Qiet=jFDei$FT>Z421@3w3@gd+pPYyFm!Kxv;_RsnStbXt3af_z1e!^&gM8AqzDqPh`~^?W)xTQHW4P{A3$#e%T`T0i%yFiihm2P zJ>IsE7?}uH66kNUY-4q?TGyc41CdiOG42GeI>Vw@(JRz7)oPep>9huOQL>2A&fITT zU{Ilw(J0h35@zi>+4{X7&do@#6527Sh)SirOp_yF_@Cjq|>p8z-}UI#?JL3I;8Dp9hB zHwTv3Po>1V)J234eMX|?rqsJG9p=^%EMDf;O{pENlTvr2TM92r`<{?`K9btMLT4LP zY{^PTlj&5HscxT8eK=pyVA zo^K-4Jc_wE!ol(=^3aNs87_arol*Awe#hw) zIBO_)=J9i{$!r{t3|rJOb`nO@J7N4BE1Y6XR;;!_Yv-I@eY~&ZzI+pit85? z|GNmIBE?k*ivLZ7_bcb%T(v~;y@xO&Qe2jM5i9r@4J{{h-0zr6qe literal 3912 zcmbtWe{3699e-#0IhQ)Ion}efZSA}gM*7EmX}V@*bhK`4c3zVuirqFUD{mM3k{q$m zmhT)|G{MwPNTKTZF=-OpKS&4(5EBC=BqpXdY=|-ml?rK8l@JvOl)(@sFxEk}@cG`o zOH#L>GQQIHec$)<{l3rpaqqr&7ykL@_u3d!!VC>G0`2E$Qc%bi=r;)b52CjF0iDJ` z-d24JPDUE{T_%KU9(Sb!BSbMbSzPmj-iquHA5FU-1RaD$*i&Qz5u#$bX2YoL@sXSO zXfu$cZy}peb`E(dt$azzmy!gN;9JiT>@(mOV#;v>2Udt|rkGg+uE}!> z)<==`>yy*14iKVjPBmwQF*VgN=RLk7nTe0B#s}npZ%O1h*4HAT^?tx-+0!+`vA!Gl zE=#`cfu)BD`6@Ol_kBw~$8C6dt$f#I_I7Era{pek-?Z=<^?Jn=wox_d99#Le$@>;u zsp$>tnEnf2ZR(RH3b*ooS@QKsn#;Gz=dG`9lv??I(8BlLZSuJ%>bKnQWy$wjxxVc& z*;z9!=U1v#u`X9M?N3>DS%{JBS}J4b!;otkU7n(UV?tQhl2X)(X0CD+%N-bCUhec__M@VdVE$9?+ZyKTC1QCH6E3%R94f9EL-`CH;MxuxmE)Z#RNlK`d@ zk1rvDA@J4}#hQ2m%>{URFJ@s@t<8|28vpD5pXwLV8mN1fmoYJLyFy76>@sm%+|MJ;* za?@S$E@dMQF!TTm$Mf9}#Xb@X;lYKwm2f;3BNv6Ib2YXHF7IXe?r_|XMf(u@Xermwj z(GK8TZTmjFNaQQ(eKfH;gf^-^f;OT)?j;;YtE!(z+pc~MZHM{_+9Zo^foY3G-++k( zUuecQ5&7X?0}QJhQgBFq162+$5g30N{aENr^=0ysv;%mv{~+&Vk6#?a4%)D z=nAklm1U?>r%DyWo=MG{4ach4shvaVf%HJC-$U=;IWzz-Jvfve+QD3_YBtg(rj1xr z4Wn^F%bN3MrB*i^+HkE}HSF>TibAngt2kOAd(hEFjnY_QGVPS-*t)KE$iZCN3B$In zxhbProiQ4&4U%lF)U2Ae>uBQ*Yu<3R16HNnv}d$}+bmnnsyL9#qs=(sChbq&MHVlFGM|0$w4O3ljO zuPlG(mw6*uIrfvY^vR;1#4?obE#)jiN$4dbpDI5IU19Ry@H|v8IVWKxt#i^`|4R<7 zlJpKDgU~({AYsN)A7b9x2`Ap*OF|#*l@~7FYc08d-K{~l9a4O2DCzx_PsU$nv)Gs27rnnn=4DF2FglA*;A@IDHP)^r-0WtS?=vZ-0S z_6)tBs&oU1bHdSt{}=avt_MG<9#49fcIOossyuLUy@Dc&t$PumbRi>Q)=rntlRG)z zaF8o8wVSh-&{uo-gGYIP)aB!ka_v#RZ!dr1+kDdH)_I;+UA}oQ-xeL=S~T>bjlAP! z-Wxs2)#ypSDLTV@U*!BnzU3(Ic%AcTY%&zZ$zzs3K`~*^Wq-;ubb}#V7p46!EXALP z#R7X4q&+O-AC{KhV#M$7l2*R0TYm)~^F)6v?LOED{QIPzk`~6x>q9c-Ls=Y&!RMF$ rq!I*5q5DdHO8WP}t_$N-{d(^kzv`hM6hKj`)Jk(=#&qdHVC=sE2tJRo From 16fa87e08131694e3095e3bcd6bacead70396103 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Baumg=C3=A4rtner?= Date: Thu, 11 Dec 2025 08:55:14 +0100 Subject: [PATCH 3/4] =?UTF-8?q?Restliche=20Kommentare=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bintree.o | Bin 5736 -> 0 bytes highscore.o | Bin 8645 -> 0 bytes main.o | Bin 5965 -> 0 bytes numbers.c | 166 +++++++++++++++++++++++++++++++++++++------------ numbers.o | Bin 6253 -> 0 bytes stack.o | Bin 3927 -> 0 bytes test_numbers.c | 88 ++++++++++++++++++++------ timer.o | Bin 3080 -> 0 bytes 8 files changed, 196 insertions(+), 58 deletions(-) delete mode 100644 bintree.o delete mode 100644 highscore.o delete mode 100644 main.o delete mode 100644 numbers.o delete mode 100644 stack.o delete mode 100644 timer.o diff --git a/bintree.o b/bintree.o deleted file mode 100644 index 1e0c0fc34907167234365d92d748cbaa9ddcd288..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5736 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 diff --git a/main.o b/main.o deleted file mode 100644 index a04c31b9e0d3615a8831c155da59398b3ff9c4d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5965 zcmbtYU2GiH6}~gGcX!t7f5-6;kc^4#I1ukTiQ@z(0Vnptx+TFPu|lZnGTxoton&`* zJ2PvWh%~7TNGlU5u2Pi;)aIq)rHDT80184BC;^E|R*Om=PzmBMh*qLiRg4;uo^$Wa z?5rKB553afd+v9>d(OE(b7tA_VM>MHgy$y+HYZuH_AlMN8{> ztH^8N+%Pm_WN0ilTs!tl@OgWXkVhR}J>xYWitQMwAzp;|q(}_}_JFsGucWKN-Y>z( zpB#Izl$(YIwKmFux;vYgFGs?|MTG#QpBAo$wS;KHh885o1Jf(4cc?2R3oPEm==7%29d=xifE6(^ac`3ov-3vCYIP7Z?1s#$;wp-Z3A=lrhnL1 z!!Q_BgG?3wh8q}@6P5V&#Fh9pfXS8kN4#0Z=Id6VkAZ+eKllC3o0a(L;+a)(?)uNp ztX_xpoBtRV$z9k={Myp=Dpc03#9a^*nH(t>W;N3qB}(7!G?}*4tTw9jS<3!W zUVTC{6+Vp;*N{Hd*bore|$sUNh60 zF{kl9soXxuOZQqhK$m&Vq$BNT-UXshzSNzHTUe(UE*c zIjWs18)jdXN?%!-DjUex%+nB*9mV6w%7dDohKcBwjVwb?&4A&8EK&L4fF!_!T_Z;VT0{!IDGs5AkRNk5tX%;a^BlH0IMkic zehPVzf&~ys;{!*gmGK>WlpVXGJEKF&V8JdM+5ueHozPLuRPKOLOcf1P8O)M9a7YL% zr=UrpEVO80%^sJ$!72U8wL#rAFh#@OiG;LTmKP^C+GQinf z4%JZVUO`8K?19X^BnQ&P@@!rsQXr7Y7gccC9AGXTyeX*{XUiEP)1JDm@boq(r}An_ z%N6smErf1~AP8?0x%K|Z2jhgsx(EPrDzB+#!aH_E?05*^0Et-YoaVzfoCH|FiqIrf z^(e|P#d#k|Yw~S z$DL9%8_twW*qIFZR>0tN)EZb7+2rUpXzCFSC6j8(v~l5+@Q|bkeXIlVUm%$UxB(`? z_K&_SHleYwl~Roi35(cy9eKEp0TOmxe#cyXSXHzaRNWv#KVK&pgylIHgGG401x|fX zHM1$w--sr~W!9Y|{oSY%mt|2~(CzVJS|bBt&Y0PFmopx-JQfM5Irk7usdkR+Xve_B zBD z+#p@c4Mm0fx?p?+hi~ngY}?-@08#eAJwc9z9ju4$qxbYQRmpYzERcw+7r|CfaBCMI zR=U+al8D+cqQ6+(AfFn;^-N2oD0?H#cCMET+k}z3{2p0#ksd zb)yf5=iL`2%$@t&5GBrxs5>J<+Wkz799@rfKFKD#k%xwkI}+rKa2ABl+5vugSFNgQ z3zm92{P4uV3bNX*{O=JL!}bn1UKF^8Ko$hyKaCC8;Ms*A2%E)8keA>mg4`7R14!h3 ztp1GE$5?%Z)j!}TPyx~j_ONu*@N2Ygj)sS5w|s&&%8PIg#DJjCE^Hp5-N$HsfeHss z($MELJV#r;pkbSCiO~jmKfMz;k~~Pek^2K0ewqrG7G#BnPtXw9%pn|M2`4 zRW8g-nZ=Xv36tEFoG8Kza^{$(7It$PEX0_F7_$)bEX4d4VrwkK)>r^_)>I1g7zAoEaj zE#!P>#0wtwl851A(+9r*`4nn}NfInT50hF!;#Rsr>Sx%Xhs}7>Igl{20GreRlYZ@K zUjk_x!>)jI7nA-D(%npIfaj9?Xa|YUZJUSf@UR0QZD%76frOW?0679ulu1WHiZKZ) zc8`@n?@E|*@H#9pPk7CgNVBKK1HiTTPT<BD^Dt%}3(kBK{31m0FdV_LgooultmI+Qj1FJlynKI?kgS`f9L#NSEEWNLh;R~a zRTcomM~ZP+qCgftJRI@=r-ddY0beB;WwrSK&jKZIsybKl|Ca?@b8C+8e=OJ*;3(@X z`TxVBjMMA7@LK=>SGd}efSj60n}5a$x$ zo7WA^l`Y$JMTC>A&(3!5>C>lORR&(<8u5Rs`|k$-kN^MaG?~;3rR3TxW9^01cV(^K YYHKdSHP`1g*X%X7@ijO2wKx6$0?|J!Z2$lO diff --git a/numbers.c b/numbers.c index f45d131..319f4c3 100644 --- a/numbers.c +++ b/numbers.c @@ -1,3 +1,4 @@ + #include #include #include @@ -5,70 +6,135 @@ #include "numbers.h" #include "bintree.h" -// helper comparator for unsigned int for bintree +/** + * @brief Vergleichsfunktion für unsigned int-Werte zur Verwendung im Binärbaum. + * + * Diese Funktion wird von der Binärbaum-Implementierung genutzt, um die + * Ordnung der Knoten zu bestimmen. Sie vergleicht die dereferenzierten + * unsigned int-Werte a und b. + * + * @param a Pointer auf einen unsigned int-Wert (linker Operand) + * @param b Pointer auf einen unsigned int-Wert (rechter Operand) + * @return -1, falls *a < *b; 1, falls *a > *b; 0, falls *a == *b + */ static int compareUInt(const void *a, const void *b) { unsigned int va = *(const unsigned int *)a; unsigned int vb = *(const unsigned int *)b; - if(va < vb) return -1; - if(va > vb) return 1; + if (va < vb) return -1; + if (va > vb) return 1; return 0; } -// comparator for qsort (unsigned int) +/** + * @brief Vergleichsfunktion für qsort() zur Sortierung von unsigned int-Arrays. + * + * @param a Pointer auf einen Arrayeintrag + * @param b Pointer auf einen Arrayeintrag + * @return -1, 0, 1 analog zu compareUInt() + */ static int qsort_uint_cmp(const void *a, const void *b) { unsigned int va = *(const unsigned int *)a; unsigned int vb = *(const unsigned int *)b; - if(va < vb) return -1; - if(va > vb) return 1; + if (va < vb) return -1; + if (va > vb) return 1; return 0; } -// Returns len random numbers between 1 and 2x len in random order which are all different, except for two entries. -// Returns NULL on errors. Use your implementation of the binary search tree to check for possible duplicates while -// creating random numbers. +/** + * @brief Erzeugt ein Array aus len Zufallszahlen im Bereich [1 .. 2*len], + * das genau einen duplizierten Wert enthält (d. h. len-1 eindeutige + 1 Duplikat), + * und mischt die Reihenfolge zufällig. + * + * Funktionsweise: + * - Es werden zunächst len-1 eindeutige Zufallszahlen erzeugt. Die Eindeutigkeit wird + * mithilfe eines Binärsuchbaums (BST) geprüft: addToTree() fügt die Zahl ein + * und signalisiert per isDup, ob sie bereits vorhanden war. + * - Anschließend wird eine der bereits erzeugten Zahlen zufällig ausgewählt und + * noch einmal an das Ende des Arrays geschrieben, um das geforderte Duplikat sicherzustellen. + * - Zum Schluss wird das gesamte Array mittels Fisher–Yates-Algorithmus gemischt. + * + * Fehlerbehandlung: + * - Bei len < 2 wird NULL zurückgegeben, da das Problem ein Duplikat erfordert. + * - Bei Speicher- oder Baum-Insertionsfehlern wird aufgeräumt und NULL zurückgegeben. + * Wichtig: Der Baumzeiger root wird erst nach erfolgreichem Insert aktualisiert, + * um im Fehlerfall kein bereits aufgebautes Teilbaum-Objekt zu verlieren. + * + * Randbedingungen / Annahmen: + * - addToTree(root, &val, sizeof(val), compareUInt, &isDup) setzt isDup: + * isDup == 1 bedeutet „Duplikat gefunden, Baum unverändert“, + * isDup == 0 bedeutet „neuer Wert eingefügt (oder Fehler)“. + * - Bei Speicherfehler gibt addToTree NULL zurück und isDup bleibt 0. + * - clearTree(root) darf mit NULL-Argument aufgerufen werden (No-Op). + * + * Komplexität: + * - Durchschnittlich O(len * log(len)) für die len-1 Einfügungen in den BST. + * - Shuffle in O(len). + * + * @param len Anzahl der zu erzeugenden Werte (muss >= 2 sein) + * @return Pointer auf ein Array mit len Einträgen bei Erfolg; NULL bei Fehlern + */ unsigned int *createNumbers(unsigned int len) { - if(len < 2) + if (len < 2) return NULL; unsigned int *numbers = (unsigned int *)malloc(sizeof(unsigned int) * len); - if(numbers == NULL) + if (numbers == NULL) return NULL; - // seed once - srand((unsigned int)time(NULL)); + // Zufallszahlengenerator nur einmal pro Prozess initialisieren. + // Hintergrund: Wird createNumbers mehrfach schnell hintereinander gerufen, + // kann time(NULL) identische Seeds liefern und damit identische Zahlenfolgen erzeugen. + static int seeded = 0; + if (!seeded) { + srand((unsigned int)time(NULL)); + seeded = 1; + } TreeNode *root = NULL; unsigned int range = 2 * len; - // create len-1 unique numbers - for(unsigned int i = 0; i < len - 1; i++) + + // Schritt 1: len-1 eindeutige Zufallszahlen erzeugen + for (unsigned int i = 0; i < len - 1; i++) { unsigned int val; - int isDup = 0; - // try until a unique number is inserted - do + int isDup; + + // Wiederholen, bis eine wirklich neue Zahl eingefügt wurde + for (;;) { - val = (unsigned int)(rand() % range) + 1; // [1..2*len] - root = addToTree(root, &val, sizeof(val), compareUInt, &isDup); - // if addToTree returned NULL due to allocation failure, cleanup and return NULL - if(root == NULL && isDup == 0) - { + isDup = 0; // vor jedem Insert zurücksetzen, um „alte“ Werte zu vermeiden + val = (unsigned int)(rand() % range) + 1; // Wertebereich [1 .. 2*len] + + // addToTree kann bei Erfolg einen (ggf. neuen) Wurzelzeiger liefern. + // Zur Vermeidung eines Speicherlecks bei Fehlern zunächst in temp speichern. + TreeNode *newRoot = addToTree(root, &val, sizeof(val), compareUInt, &isDup); + + if (newRoot == NULL && isDup == 0) { + // Vermutlich Speicher-/Insertionsfehler: aufräumen und abbrechen free(numbers); - clearTree(root); + clearTree(root); // root zeigt noch auf den gültigen Teilbaum return NULL; } - } while(isDup); - numbers[i] = val; + + if (!isDup) { + // Einfügen war erfolgreich und der Wert ist eindeutig. + root = newRoot; + numbers[i] = val; + break; + } + // Andernfalls Duplikat: Neue Zufallszahl versuchen. + } } - // duplicate one existing random entry - unsigned int idx = (unsigned int)(rand() % (len - 1)); + // Schritt 2: Eine der bestehenden Zahlen zufällig duplizieren + unsigned int idx = (unsigned int)(rand() % (len - 1)); // Index im Bereich [0 .. len-2] numbers[len - 1] = numbers[idx]; - // shuffle array (Fisher-Yates) - for(unsigned int i = len - 1; i > 0; i--) + // Schritt 3: Fisher–Yates-Shuffle über das gesamte Array + for (unsigned int i = len - 1; i > 0; i--) { unsigned int j = (unsigned int)(rand() % (i + 1)); unsigned int tmp = numbers[i]; @@ -76,31 +142,53 @@ unsigned int *createNumbers(unsigned int len) numbers[j] = tmp; } - // free tree resources + // Aufräumen: Baum freigeben clearTree(root); return numbers; } -// Returns only the only number in numbers which is present twice. Returns zero on errors. +/** + * @brief Findet den einzigen duplizierten Wert in einem Array aus len unsigned int. + * + * Funktionsweise: + * - Es wird eine Kopie des Eingabearrays erstellt, um die Reihenfolge des + * Originalarrays nicht zu verändern. + * - Die Kopie wird mittels qsort() aufsteigend sortiert. + * - Beim Durchlauf werden benachbarte Elemente verglichen. Da genau ein Wert + * doppelt vorkommt, finden wir ihn als erstes Paar gleicher Nachbarn. + * + * Fehlerbehandlung: + * - Bei ungültigen Parametern (numbers == NULL oder len < 2) wird 0 geliefert. + * - Bei Speicherfehlern beim Kopieren ebenfalls 0. + * + * Komplexität: + * - Sortieren in O(len * log(len)), anschließender Linearpass O(len). + * + * @param numbers Pointer auf das Eingabearray + * @param len Länge des Arrays (muss >= 2 sein) + * @return Der doppelte Wert; 0 bei Fehlern oder falls kein Duplikat gefunden wurde + * (gemäß Aufgabenstellung sollte aber genau ein Duplikat existieren). + */ unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) { - if(numbers == NULL || len < 2) + if (numbers == NULL || len < 2) return 0; - // make a copy so original array order is not modified by caller expectation + // Kopie erstellen, damit das Original unangetastet bleibt unsigned int *copy = (unsigned int *)malloc(sizeof(unsigned int) * len); - if(copy == NULL) + if (copy == NULL) return 0; memcpy(copy, numbers, sizeof(unsigned int) * len); + // Sortieren der Kopie qsort(copy, len, sizeof(unsigned int), qsort_uint_cmp); + // Linearer Scan: erstes Paar identischer Nachbarn ist das Duplikat unsigned int result = 0; - for(unsigned int i = 0; i + 1 < len; i++) + for (unsigned int i = 0; i + 1 < len; i++) { - if(copy[i] == copy[i+1]) - { + if (copy[i] == copy[i + 1]) { result = copy[i]; break; } @@ -108,4 +196,4 @@ unsigned int getDuplicate(const unsigned int numbers[], unsigned int len) free(copy); return result; -} \ No newline at end of file +} diff --git a/numbers.o b/numbers.o deleted file mode 100644 index 782422483b6fc37854303ecf9fe6a227ef57da97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6253 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 diff --git a/test_numbers.c b/test_numbers.c index 067bb3b..e14e98b 100644 --- a/test_numbers.c +++ b/test_numbers.c @@ -1,41 +1,91 @@ + #include #include #include #include "numbers.h" +/** + * @brief Selbsttest für createNumbers() und getDuplicate(). + * + * Erzeugt ein Array aus len Zufallszahlen mit genau einem duplizierten Wert, + * validiert die Eigenschaften per Zähl-Array (Wertebereich, Häufigkeiten) + * und prüft anschließend, ob getDuplicate() dasselbe Duplikat ermittelt. + * + * Rückgabecodes: + * 0: OK + * 1: createNumbers() fehlgeschlagen + * 2: Speicherfehler für counts + * 3: Wert außerhalb des Bereichs [1..2*len] + * 4: Ein Wert erscheint öfter als zweimal + * 5: Nicht genau ein Duplikat gefunden + * 6: getDuplicate() liefert anderes Ergebnis als Zählung + */ int main(void) { - unsigned int len = 100; + unsigned int len = 100; // Anzahl zu erzeugender Zahlen unsigned int *nums = createNumbers(len); - if(nums == NULL) { fprintf(stderr, "createNumbers returned NULL\n"); return 1; } - - // count occurrences - unsigned int maxVal = 2 * len; - unsigned int *counts = calloc(maxVal + 1, sizeof(unsigned int)); - if(counts == NULL) { free(nums); return 2; } - - for(unsigned int i = 0; i < len; i++) - { - if(nums[i] > maxVal) { fprintf(stderr, "value out of expected range\n"); free(nums); free(counts); return 3; } - counts[nums[i]]++; + if (nums == NULL) { + fprintf(stderr, "createNumbers returned NULL\n"); + return 1; // Erzeugung fehlgeschlagen } + unsigned int maxVal = 2 * len; // Erlaubter Bereich: [1 .. 2*len] + + // Zähl-Array für Häufigkeiten pro Wert (Index 0 bleibt ungenutzt) + unsigned int *counts = calloc(maxVal + 1, sizeof(unsigned int)); + if (counts == NULL) { + free(nums); + return 2; // Speicherfehler bei counts + } + + // Häufigkeiten bestimmen und gleichzeitig Bereich prüfen + for (unsigned int i = 0; i < len; i++) { + unsigned int v = nums[i]; + if (v == 0 || v > maxVal) { // sollte nicht passieren, wenn createNumbers korrekt ist + fprintf(stderr, "value out of expected range\n"); + free(nums); + free(counts); + return 3; + } + counts[v]++; // Auftreten des Werts v zählen + } + + // Exakt ein Wert muss doppelt vorkommen; keiner darf >2-mal vorkommen int duplicatesFound = 0; unsigned int duplicateValue = 0; - for(unsigned int v = 1; v <= maxVal; v++) - { - if(counts[v] == 2) { duplicatesFound++; duplicateValue = v; } - else if(counts[v] > 2) { fprintf(stderr, "value %u appears more than twice\n", v); free(nums); free(counts); return 4; } + + for (unsigned int v = 1; v <= maxVal; v++) { + if (counts[v] == 2) { + duplicatesFound++; + duplicateValue = v; // den doppelten Wert merken + } else if (counts[v] > 2) { + fprintf(stderr, "value %u appears more than twice\n", v); + free(nums); + free(counts); + return 4; // Vertragsbruch: zu häufiges Auftreten + } + // counts[v] == 0 oder 1 sind unkritisch } - if(duplicatesFound != 1) { fprintf(stderr, "expected exactly one duplicated value, found %d\n", duplicatesFound); free(nums); free(counts); return 5; } + if (duplicatesFound != 1) { + fprintf(stderr, "expected exactly one duplicated value, found %d\n", duplicatesFound); + free(nums); + free(counts); + return 5; // zu wenige/zu viele Duplikate + } + // Ergebnis von getDuplicate() mit der Zählung abgleichen unsigned int found = getDuplicate(nums, len); - if(found != duplicateValue) { fprintf(stderr, "getDuplicate returned %u expected %u\n", found, duplicateValue); free(nums); free(counts); return 6; } + if (found != duplicateValue) { + fprintf(stderr, "getDuplicate returned %u expected %u\n", found, duplicateValue); + free(nums); + free(counts); + return 6; // Abweichung zwischen Methoden + } + // Ressourcen freigeben und Erfolg melden free(nums); free(counts); - printf("test_numbers: OK (duplicate = %u)\n", duplicateValue); return 0; } diff --git a/timer.o b/timer.o deleted file mode 100644 index 80d7bf24a1e55897ea8c0c18bd445e104a29e2c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3080 zcmbtW-D@0G6u)<7C%bi%?53M)qt;AqOs!;RH=j*YYu0Q+l8PnR1QoVjXLl#N+w9JS znc2DqDPpkF`W2s~*asg3{{x>Cqm^1kL`3=~_#%iFlz>oBjOW}tGdq)1eDJ`W`#b0S z?zvxcKS~!n3ChDNMyt#a4D>I_-fR0@{m zC&c}RgI_{kGnjBc#J-1i{gNT+jIz3$cMEtooc^^z1;#UjJZv{4`m-T#A(I*j`qn5R z-M|asKtZs`koZ(;aE#fmdKJK%A=lz1;|-?+PPFz(ge*GwpsPIJ$Y_A~E?6_bt2jJ9 z4rq7uXn=PogS9(09tiya){l_SFN`-H9Pk1VKE}p;!sg{zuzwYZcfcIK@AMCco*|j3 zrMXK#&8^>(f5!TkSc4mL>z~VKt~rr3i!8@}+uVvhviTZgfb}IK^qFfLOlU-uB10jO z!oV1Qiet=jFDei$FT>Z421@3w3@gd+pPYyFm!Kxv;_RsnStbXt3af_z1e!^&gM8AqzDqPh`~^?W)xTQHW4P{A3$#e%T`T0i%yFiihm2P zJ>IsE7?}uH66kNUY-4q?TGyc41CdiOG42GeI>Vw@(JRz7)oPep>9huOQL>2A&fITT zU{Ilw(J0h35@zi>+4{X7&do@#6527Sh)SirOp_yF_@Cjq|>p8z-}UI#?JL3I;8Dp9hB zHwTv3Po>1V)J234eMX|?rqsJG9p=^%EMDf;O{pENlTvr2TM92r`<{?`K9btMLT4LP zY{^PTlj&5HscxT8eK=pyVA zo^K-4Jc_wE!ol(=^3aNs87_arol*Awe#hw) zIBO_)=J9i{$!r{t3|rJOb`nO@J7N4BE1Y6XR;;!_Yv-I@eY~&ZzI+pit85? z|GNmIBE?k*ivLZ7_bcb%T(v~;y@xO&Qe2jM5i9r@4J{{h-0zr6qe From b3f1298149a0138f054a5a7656e2bb93490f3d73 Mon Sep 17 00:00:00 2001 From: duernbergerjo100488 Date: Thu, 11 Dec 2025 12:00:06 +0100 Subject: [PATCH 4/4] Push: nur malloc ohne Variable* --- bintree.o | Bin 5736 -> 5844 bytes doble.exe | Bin 83145 -> 83149 bytes highscores.txt | 2 +- stack.c | 2 +- stack.o | Bin 3927 -> 3927 bytes 5 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bintree.o b/bintree.o index 1e0c0fc34907167234365d92d748cbaa9ddcd288..14f7ea10b194ef4511bb035968eaf19da9be6bb1 100644 GIT binary patch delta 1765 zcmY*aU2GIp6h3EW&i2mE{_oEIv_Qd@ZV}5*s3w3>k-yX$V}!(j2D-EZUAuJ4cD5Bn zH(3lpAJEA~LbOqc@?wIT^ns)(F+Q01z=H`9d{PKR;)@R^B$^mKcV=13P3F!y-#Op8 z=iGDe%)Q61513;oqoBrB&+NfF-oPh#&b!u~JZ%76CxA6c-wG-3pB$Y+fCI9CMf%+W zxGlG1w^?VbGXij59>#7`-tS2di+G;rjJ$?v{9N9`V(9M}z~0n+O#5DszRST0P^i$B zyhSgeDF;IrL;9BtMC31_RgI|7!yK7O09xFa&8^kLQ>B`-W7OS!bjkrE9^c0<`Y2Cv z#hhgU+Y{)=Sx+Pv+i02`tA zTfCRsy!#J$jZP){Je6&D(s|ugv~66y1|#xUk!u{*TZ@b=YdMRu>(okawYJMGjZVOU zoGQv>w_u3Ugj;ti6{j{lS#_OBI1&$t;}9;5jqR@biS=3v+}YxsRolV?=QeQ9{hE5a zeOAK*gPXx&R<2Mz(>xLAJ8M;EdfI`$CHtAEc?o02sU4~~<AgBOTNr`~9nu|6G?F#?c3P@YuX**{gE z9)F$>$24FxxF1Y?P!!Ic;$jT7TmDYH=++>*T4B87#ze3=(XByL0lI%SkYFgy9=%{$ zPg%NH!aa?HwL&P=Akf986}Z{jXbq*cynHRZy1`g%5ymHU@L?}*PF5jSK;u5I!KVxD zK*hpPI*F-{XY$7j$ctD>Tq)9)-rd!$;6#q^S{n73Wd#wGPn1*Qs~zLG`(pnGj@ziB zDUU=S??jS$Vlgk(=U10*CE#aNEIjG2n`wiz(Ru*da>UB6%(hKjc(JfJ+nj|;<(|lo ztRXxi?^^pCdKAg}lM3r72bzIm4JGQ7zD#&jx0@uy3}x#iF3`Xi6uCi}IxRgx4)B3)I!5#0gq^hHRJV8R{=nzDZd>_yR@G)2cERnyu9q8Wj1I zI%jC$TUy!-0*eKToFp7BlekLe4CU^Ud5Lo3RT3^G_RzpA*xJT;%ME?}} z->BJo?U+-U-xuAk&3_jE5MTLmoj+vqwtezH D2#nkNPRwEl`Put%QO68UFpY~%w6Q3zV8-`R2;k4?T1fdy4Nh@z0yJc3zqmq= zp&&(j!B>_!*qPJp9e5dbC*i(!HUs{QbC~SB0#l>C5 z{mZ7qmXYF89;QQIFzOe!%XQe>055#T8nsd?IWV1(yi(`bo17t$o5^P@vLe87-|G$F zu_o|l6FA-~c^4?_HRtlrITAON)wlse;s+yjB&*&^Gt}Pj){9QQGU8-&r{G{p{*%c* z-qPJhj)XnW0+`v!$*OI;AXj^*o|`R0#+0*G>NCmb8?gbu)3%rU zI6&$|aZYx7qFkLX9N}Tl1M1#+XUw4n4lhi~!kfSTs8a#GPwKdT>Ky3%y?_P}c--HT zCQywBJ8`eI#~QYk7M@KQtWIOt7U%qZoddU9jil6Ao;!C`{N~@b?2lrPVOwfPTSpXQ zdL+dM-$pfLS)M1_009omH!H~a(7*Ul0yF7hTRMb$`41utGyV&U_QEh5V>|KT^sU61 z^h0Thup3J8niXt`H$7;NC1ZL%331VC^(QTqg>etX*VZu3inhSSa+>@%D19HLK+(|H zNmiAD>x8FYCEch}vP$|Y^}bKmWs0-7LUHMLl_FKL911=~@k?Z`QkPMu)(wi+C~}6j z3ko|7w`qHUk~I%vY*1j8dJ2@PQNqo&LDt)}+`2$JKBu-Cr5nn?S;E6Jq<>200@>Hd zyht(QY0@2vj8WGDMU8tY>=hAMAiYL?V`Oq(ql>UQP5LFW7l~?QpJDnk5~t7>FC})V?Fiy{vMAb< K{o-iym45)U=NbzD diff --git a/doble.exe b/doble.exe index 8c669d39161bccb224078f79830b7915a4243823..04ae889c8da72fd840b6e2da45e19ab74215807d 100644 GIT binary patch delta 6574 zcmY+I3sh709mnrK$v*}{BoG1#4+%sBbs|=nQ+v9!wNh%eI6bF6W(6?{qSHR;QJ2*2hs#S)XXzO}o=-kFDa9X=@%NG~>iWNhWITtqyukbGMDTd@&DKhc8vZbZC zO~GvvEEWB;z!9_SyxtkohhbO%#ESb%5|j0lAv5}_YZRSxh;*h$J!}vcicQp&Ot!}@ zft_M>>a4S*BoNOoj+Es2BYlv}DqHDQ)(t%ZeKk?>NV{qHlLy;;5EetwHDz6tsR-^BX-OyC(xy((Z@5cK$?p8L&G5yT~f1{P0kbFxnAHCy)zPzslQiuZ(fFU_M2P;#gExCD&_VO+$U@;~1BEg;^|}pOwijnz-4d22%IcDE{bF4Y&Yt=i zAg|U};`-0o>r<0bV_57EYXY{sjp>J)%|T6ufEI){WB0>;sAeB+XPM3dn^drlK>jf> zGliSQj!+6j)hmf2VvR*S&|-Ahv)QkmffV>ev$Vb6DXrs0>YBu;1T&KfV2!hxC~ArC zn!iTyJ#8x(OAssDA7QnkuYI9kZ(-d0Kkm%o35w3ZOxfJpz-`@}txyiJQ$2V}( z7CvSdk2=TW8hAgD!E&YQXYd7NK>y?*6c&N3nS zLYC)R#$%fKMCl;%k9?H;Z01>AZgIi5=k-LRv9Y0UrMIHX*)hQOY;Co%R64&?Tvs^K8|8Cn!XnG*WUI}?SFK+F3ub*cS={;BR zjb!O{n>nNwslZ+iWYU|(W{4HNyKUdXx{z4k5|a6N4gphy{2a$3d>P< z!euB~?cqw_fb@&nx01x7qggt=v8(my>qcWVy4M#kJO_r^hT$>?n^x;fu2^uwJ<mPvQ}ET!>#@*CjRSN`R;Yb%__w-oI6DInR6^p z)`&qF$hCdq9ST*VC_ z-w?80dLZN-5CbyRtd4b+U+&H`ehh&!3iFXDIu4uE$84-L`bvPwD`OJK z2PAwxNGC~pj=3DQ5>y7I0TO;0ND(2;Ao7r{4kq0Wa*c%V1jz}c=nCnaR!`fRJL4h* zgCzGskRpEi_m`be|3f_Mn&QQwDZ!7-^yoPP@9Lh4$**Fc(Zt1UglSBRCk%T&iZSf1YlK_L;$ z2I(X96oG6ab5jXoA|Y3T$OEoI&1wO;NvyVkEGJgG{8EWja{z?yzE40NC1(Etp=)l$ z_wzpDXE;b92|qy+(v@k^enpu>%xa*tiPW(Mq@Or?4dhqEsuM(htH?zSF6`exlCdYX zMfnb-jg0@DX#7{wM4IowB)5_9<3RS2k~1KpFtv566&FHEO?XY2;Bt>OjCQIY8wZEJhTltRlN>@e3qMsop2Xbq z8zJaGQd)#nAZ?_>YeDvsnEOE#67ugLbe2C?^ON!DxTTik!ykorKNlGrC&(c2F#^Oo zD*VBo3-SSpTmsTZ*0vGkexkE2WTo}GI~GVDTH8KSQ&X6G!et2L2xz+BgWx4EY@Rqe z*GXn%gt`L88RH-rAc7}A9wq5Ltsa)D4G`2|l(pBR7eSUI4(tQb6=ky;F$^8srH;YJ z{P!St5$Bgd+DON)f^@)ME6agbUBEDs57I&Wl&Wtbfd3f?c94C$1H?rF90akFVfY8g zc~aqdkQy?!H$eK3gx1ukcsxglpAuNae>s zipZ*+0qGz$Tm_MbHcUGFh)jtMq>y+{18Eu_{!q{M1J%Gz>%|n1<)o^aAlFFvh0+nK z(t1$~B0Hxgv=&4j8rcp~L%OpsX)X|PeF{qF3Aq5`A>=#h2(Gm$z5^mhMN4R?`fLWa zY(_Fxga~p$Oe4de{vP!hRQ+BEZUzK*7x)aB!E{1{at(yG zD>fzg!lhN<_5%$NM`J;(B=-kEI!WPAf)s*idvz&D3t2zuxu00A0~sJXucxSAj$r9A ie}+Ux2+l)yilRo3W(nOnnQVzckKg9IUmMMGo&N`_eS;nV delta 6533 zcmZXY3v|=f9mnrYa+9>7ByG}H`bry0c}NKYqQbT+%u*2S4md#sTKljCN<&G3qAVRc zqzc+{nSXRB1_|NrxQ z|L*VJBt6z5jV9dcx%M_m4P*pWq`7k9I6-bn0D%_c-(YQ4S>ix`+Zc)yRsEA+24NH;@6{C}# z)v#mcbc17xl7!>A_%{HcqtKL873Lw$XK%_&g# zhBlOW3_8gb^Qy`lR7Q-?G#5n;pNQDO@aA2^nQnC-HrxxtxcOB}0?KY&c@Pa47fyL~ zdL(e@u6?=jPT+CbQF}{mpsHa?puA!(dn8rW7iaV}N9-)&)=sfUG;3H~d1d9)`fzqh zHU)2_MigID<>BJ%T_zTcmX?$gjbIF~Nz$;z&@!}H!;j(iB>j9gj0|lKW5wN-XGu>K zhxO8owF}2J`sdYFln1Ikn> zSZc;%hhavYn_mpwS2x_m2go@Ky71b+p_;qp>V^#5zthl(*UE*HK|%}baGx94G-!rZ zrEFoWc|@fCdkaxWHU2)vA8+1fkEB;`mDgqsm6?rG`OVOR##bG($kcE9ivJkW1v6S7 z%;lqP57tGB|g{|4OYXir6CRm=Wo3$*PD??U$ygt_wV_9_@2lJQP38sZB~GPa?~jZfFtf&*CH7|}5GKj1EiUeq zzLhTSk{`UB!jt8&m)w0)Y+Oae>K1ZYwlXDD_mUK-Eopme6X*Tp(zajnI@#SeJD4uw zuZwh_NM!~Sw-yRpqe$2#c+-o*Vr>*Djl$9{`hOs7r-TcS8-z>geI*=?!WIw-PYPF; zh-(*l);8hp6t3mM@x16Kg*^asr|4HBQkF+dtev7yyU4E*smn!jI98{yZ4yEEA~CRA zWGolyQP^jN;1lNw%YG5JNH{Nwxc5bpb%wA6gk!qMTO<;#Lxnw(M4v^%vRn+FF5(c^ znkRVU9AW7a&c#A37tZJL`U32YOHT@30Lev_bylNrEEgk`gSSKhGvj@^$PX3BGv+p* zY5N;)b11j{0&nwKwr^VH zd|=O3=V53TL5|%J^>#wu-s9yLWKQQ5eApy(d2MR{Bq%w5F`P)(06sxBb!~Ni1LIO+ zd_#`j>kZmr@FF&Vo?<_c9|;)_@+*AyD4j@(4};81j3tkO94BNJ$b%S5-Kq}c&o8$UXbKe5pLYuh@1GI(@?h>_R`&1wJsDLq2vQBiz(^`&XHlL4�bh>5Q zffVPfcq($mM%gGIIxv#&4=q0Mdm}$86ApP(&p^qM9IJF0q(?4zFGD_kXn^4-5n6TV z4YS#X)^?}JqP^KpH*S5{qk3O_a^_L*z%k(MI05vkeyxm<65gWAQm$@g+m;-$26qnJ zWxRd)C^sKaJabKFw)0Ee^$?rChjKn^;^tcrlxE82GkLQ6*iCaHcJ0+HmC%e~xb@&z zS3V-M^a~K=5kn?{lx4>zHwVN@be4hi5S=$eqdtF=i)|42<+XE}^4~ql;!`}8s?6n} z<3|mbEYk6s} zDga|Y191$9EpI%?Izq~o70wh)L)5A+>PIInAe-ShPGmJ=w;joa+ri43(`T7o@$$mS_!IxQZEVL08&QCZ$Q+g zS{+GxHON&GehY{%oT4YH^QrcEGWX`6g5WaA{VR|%l7vM|P2t{PMjr^UkU#x&C(dvX zd>fA;kAnE&KyS`crGpFUL?gF`i6_SDT@ajsG2|~GJ`l`&)atah2TAaMY3J2jy2ewH z{ZMSE4wC&CkTjD0B&`Ih&e;&`j(Ur9$*%>Kk7fwENweMpDI#R2_6bx=4k}gR{BIy0 zq^{Td9Y`}C^`-v-#6jG7wc%-eWN-{VTS|$b6r`Kf^AyNBGB>p#RuXa%h`Qh^+N>8q zZW5~vAWMkVyFsNys@V-fci&l%@x<&OAauBni9M+=%J(3xWc+X2@pGq{G~b0uZYAM|fb1sA zF$M%jPmJq&kZGht&w-ReN1xqSK*~rN?||4#iR=B^LN~_o0wiiBp&l(K4&P+jqfe0n zv$QU#I)^}@E`38jtX+d3I0=FgWEU<2xk|#V0V#s9-nOkEe$u3UARe-6pMmtCT0OgS zAgWru+1C4#fXEuTKL+>nD7s4M>4o~#zF|%k(3@`8AvPXa0|!|67xe4MnZlB zLT9;GE6&8xaYLJnx1bf@{XArBl0hyLA9)~-L9qwB59Bb3JR78&tnEUOF+^uW)JpGl zC<#bidfSd^Ia%C0>I?*G1a#eNAo!9OGfy0y>mW0dr!~Pie+UG)#!J3$g@pU>}Z-&8Wp?qhs%CL-00Z59A)={0vAd>DVQZcG&A>x$spNFoui; zX(xUvwf7JpxEO*hWZ!NE@sI$WAPzDNpMabu6`la`ld-)H(v2kars8KYyPx<;4+1F- zeLLL)GL5)?6l4G~n+~#$?3!ml9E7X@VT8O6(iZ*m>3=bdaoDD${siaPO8-o0$5UAgBdbrm?YKUr= z_5+;rBU)}Q2Imyy14uEKK>WnwpIR+cM_Dkomx&--4Kn6i@9`)QRh@oXmS~4y9DD+T zCB(QEq=S%UAY~+%S3ru$0&P%)OhX4qGeYWJ+7EJ*Y=$qM1X4Nad3^=4nY8K#$aq5H z(lKapvF-dhNDpycq8-RXeX}4?8y(u=Ocxn+8*5Ka->IX0R9C-+&8A8O1T1^K@BlT5+_(+P+g511Y z#_ai3i|gvOUN3j>ceHC>d=m;OC#3R&AZ29LdO+Gq4VOUFr4Q4O|3~cje{m`CoCVU{ zFZNI$6a@0ak=~0UkR_z5Ng!8A_!-I(s?vK=2ckNsC)5I>E}d)y@ssZC$e0d9Tpxkb zX+pjPDI(;1n7pvfBr;B$7^aP`(49?dqEq`NE}FkP`&zC5{GzI7sdff^?9=r+}1# z=zFySWF=X@XF+<1)k`3~MCY|E?NWc9m$(TM6(KSYp)97^2lLcjz5-rt+V#d@K0N)u DlN5J# diff --git a/highscores.txt b/highscores.txt index 41cccf8..cda4174 100644 --- a/highscores.txt +++ b/highscores.txt @@ -1,4 +1,5 @@ Player1;19887 +Player1;19843 Lena;19811 Lena;19702 Player1;19578 @@ -7,4 +8,3 @@ Lena;9980 Lena;9978 Lena;9978 Lena;9976 -Lena;9975 diff --git a/stack.c b/stack.c index 8c63ec6..0d54b55 100644 --- a/stack.c +++ b/stack.c @@ -4,7 +4,7 @@ // Push Daten auf den Stack legen. StackNode *push(StackNode *stack, void *data) { - StackNode *node = (StackNode *)malloc(sizeof(StackNode)); + StackNode *node = malloc(sizeof(StackNode)); if(node == NULL) return stack; // allocation failed -> return unchanged stack diff --git a/stack.o b/stack.o index 3d96b0c3663936e45af3ad80c7ffae75efd6594a..263c7718fe9b7173eeae75d25873c3dc42605589 100644 GIT binary patch delta 14 VcmcaEcU^A7Np?o@&8OIV*#R$01)Bf> delta 14 VcmcaEcU^A7Np?n+&8OIV*#R$^1*iZ3