commit 4b3fc893dc4d7b88cadf9fa16d196c37de6ba08d
parent 0d970c5c1305d0c5c3f194a0195e07b1479038ec
Author: Plat <plat@stellar-nexus.ru>
Date: Thu, 6 Nov 2025 20:17:58 +0000
Various fixes to Red-Black
Diffstat:
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/config.h b/config.h
@@ -0,0 +1 @@
+#define FILENAME "sample_data.txt"
diff --git a/rb.c b/rb.c
@@ -5,6 +5,8 @@
#include "tree.h"
+#include "config.h"
+
inline Node *
init(int val)
{
@@ -97,10 +99,11 @@ main(int argc, char *argv[])
argv0 = argv[0];
if (argc > 2)
usage();
+ const char *filename;
if (argc == 2)
- char filename[] = argv[2];
+ filename = argv[1];
else
- char filename[] = FILENAME;
+ filename = FILENAME;
if (!(FILE *file = fopen(filename, "r")))
eprintf("fopen %s:", filename);
@@ -112,7 +115,7 @@ main(int argc, char *argv[])
w[wi++] = ch;
} else {
w[wi] = '\0';
- arr[i++] = estrtonum(n, 0, INT_MAX);
+ arr[i++] = estrtonum(w, 0, INT_MAX);
wi = 0;
}
}
@@ -132,5 +135,5 @@ main(int argc, char *argv[])
for (int i = 0; i <= INT_MAX; ++i)
search(root, i);
end_time = clock();
- printf("%f\n", (start_time-end_time)/CLOCKS_PER_SEC);
+ printf("%ld\n", (start_time-end_time)/CLOCKS_PER_SEC);
}
diff --git a/util.h b/util.h
@@ -16,6 +16,11 @@ void *emalloc(size_t size);
void *erealloc(void *, size_t);
char *estrdup(const char *);
+/* fshut.c */
+void enfshut(int, FILE *, const char *);
+void efshut(FILE *, const char *);
+int fshut(FILE *, const char *);
+
/* eprintf.c */
void enprintf(int, const char *, ...);
void eprintf(const char *, ...);