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