From 7bcd47319030a55af98ca2d4c60717d886439cda Mon Sep 17 00:00:00 2001
From: Eduardo Mathias <emsouza@inf.ufpr.br>
Date: Mon, 4 Nov 2024 17:45:54 -0300
Subject: [PATCH] [ADD ] MAKEFILE

---
 Makefile  |   4 ++++
 a.out     | Bin 20872 -> 0 bytes
 t2.c      |  25 ++++++++++---------------
 teste1.in |  15 +++++++++++++++
 4 files changed, 29 insertions(+), 15 deletions(-)
 create mode 100644 Makefile
 delete mode 100644 a.out
 create mode 100644 teste1.in

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..cfa69a4
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+all: t2.c
+	gcc t2.c -o mydht -Wall -lm
+purge: 
+	rm -f mydht
diff --git a/a.out b/a.out
deleted file mode 100644
index 427dc8639b9c9300cda49e4a4301f993551e324b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 20872
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

diff --git a/t2.c b/t2.c
index ae0d0b0..89c079e 100644
--- a/t2.c
+++ b/t2.c
@@ -16,20 +16,15 @@ typedef struct Node {
     struct Node* prev;
 } Node;
 
-typedef struct DHT {
-    Node* head;
-    int max_id;
-} DHT;
-
 void redistribute_keys(Node *dht, Node* new_node) {
     Node *start = dht;
     do {
         Node* current = new_node;
-        printf("Start:%d Next:%d\n", start->id, current->id);
-        printf("Start->key_count:%d\n", start->key_count);
+        // printf("Start:%d Next:%d\n", start->id, current->id);
+        // printf("Start->key_count:%d\n", start->key_count);
         //O novo nodo deve ter as chaves EXISTENTES que são maiores que o antecessor e menores ou iguais a ele
         for (int i = 0; i < start->key_count; i++) {
-            printf("Start->keys[%d]:%d\n", i, start->keys[i]);
+            // printf("Start->keys[%d]:%d\n", i, start->keys[i]);
             if (start->keys[i] > start->id && start->keys[i] <= current->id) {
                 current->keys[current->key_count++] = start->keys[i];
                 start->keys[i] = 0;
@@ -166,14 +161,14 @@ Node* remove_node(Node* head, int id) {
 // Função para calcular a tabela finger
 void calculate_finger_table(Node* head, int max_id) {
     Node* current = head;
-    printf("Max_id:%d\n", max_id);
+    // printf("Max_id:%d\n", max_id);
     int log2_max_id = ceil(log2(max_id));
-    printf("Log2_max_id:%d\n", log2_max_id);
+    // printf("Log2_max_id:%d\n", log2_max_id);
     do {
         for (int k = 1; k <= log2_max_id; k++) {
-            printf("N:%d", current->id);
-            int finger_id = (current->id + (1 << k-1)) % (1 << log2_max_id);
-            printf(" Finger_id:%d\n", finger_id);
+            // printf("N:%d", current->id);
+            int finger_id = (current->id + (1 << (k-1))) % (1 << log2_max_id);
+            // printf(" Finger_id:%d\n", finger_id);
             Node* temp = head;
             //Inserir na tabela_finger o id do nó que é o menor id maior que o id do finger_id, ou seja, o id mais próximo do finger_id
             while(temp->id < finger_id && temp->next != head) {
@@ -221,7 +216,7 @@ void print_finger_table_completa(Node* head, int timestamp) {
 
 // Função para realizar lookup de uma chave
 Node ** lookup(Node* head, int timestamp, int node_id, int key, int *num_nodes) {
-    printf("Lookup\n");
+    // printf("Lookup\n");
     Node* current = head;
     Node** nodes_involved = (Node**)malloc(TAM_MAX_FINGER * sizeof(Node*));
     *num_nodes = 0;
@@ -295,7 +290,7 @@ void insert_key(Node* head, int node_id, int key) {
     }
 
     current->keys[current->key_count++] = key;
-    printf("Chave %d inserida no nó %d\n", key, current->id);
+    // printf("Chave %d inserida no nó %d\n", key, current->id);
 }
 
 void imprime_chaves(Node* head) {
diff --git a/teste1.in b/teste1.in
new file mode 100644
index 0000000..ce0be83
--- /dev/null
+++ b/teste1.in
@@ -0,0 +1,15 @@
+1 E 4 -
+2 E 10 -
+3 I 10 18
+4 E 20 -
+5 E 14 -
+6 S 4 -
+7 E 28 -
+8 L 10 18
+9 E 1 -
+10 E 56 -
+11 I 1 50
+12 S 56 -
+13 E 52 -
+14 E 42 -
+15 L 10 50
\ No newline at end of file
-- 
GitLab