From a322e474ae88798f7f0e55b496cda96e5dd2aa6b Mon Sep 17 00:00:00 2001 From: Max do Val Machado Date: Tue, 27 Oct 2020 17:28:50 -0300 Subject: [PATCH] =?UTF-8?q?atualiza=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/matriz/Celula.java | 4 +- .../java/matriz/Matriz.java | 13 +++-- .../c/arvoreBinariaC/arvorebinaria.c | 55 ++++++++++++++++++ .../c/arvoreBinariaC/arvorebinaria.h | 3 + .../c/arvoreBinariaC/exec | Bin 0 -> 17616 bytes .../c/arvoreBinariaC/principal.c | 4 +- .../java/arvoreBinariaDeLista/Agenda.java | 12 +++- 7 files changed, 80 insertions(+), 11 deletions(-) create mode 100755 fonte/U7 - Árvores binárias/c/arvoreBinariaC/exec diff --git a/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Celula.java b/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Celula.java index d22592a..631efe9 100644 --- a/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Celula.java +++ b/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Celula.java @@ -1,6 +1,6 @@ class Celula { - private int elemento; - private Celula inf, sup, esq, dir; + public int elemento; + public Celula inf, sup, esq, dir; public Celula(){ this(0, null, null, null, null); diff --git a/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Matriz.java b/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Matriz.java index 4b4dded..d7f9c99 100644 --- a/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Matriz.java +++ b/fonte/U6 - Estruturas de dados básicas flexíveis/java/matriz/Matriz.java @@ -3,9 +3,7 @@ class Matriz { private int linha, coluna; public Matriz (){ - this.linha = this.coluna = 3; - - //alocar a matriz com this.linha linhas e this.coluna colunas + Matriz(3, 3); } public Matriz (int linha, int coluna){ @@ -15,10 +13,18 @@ class Matriz { //alocar a matriz com this.linha linhas e this.coluna colunas } + public Matriz soma (Matriz m) { Matriz resp = null; if(this.linha == m.linha && this.coluna == m.coluna){ + resp = new Matriz(this.linha, this.coluna); + for(){ + for(){ + //sendo c (pont em resp), a (em this) e b (em m) + c.elemento = a.elemento + b.elemento; + } + } //... } @@ -47,7 +53,6 @@ class Matriz { public void mostrarDiagonalSecundaria (){ if(isQuadrada() == true){ - } } } diff --git a/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.c b/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.c index da413de..c727113 100644 --- a/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.c +++ b/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.c @@ -199,3 +199,58 @@ void antecessor(No** i, No** j) { } } + +/** + * Metodo publico iterativo para remover elemento. + * @param x Elemento a ser removido. + */ +void removerSucessor(int x) { + removerRecSucessor(x, &raiz); +} + +/** + * Metodo privado recursivo para remover elemento. + * @param x Elemento a ser removido. + * @param i No** endereco do ponteiro No + */ +void removerRecSucessor(int x, No** i) { + if (*i == NULL) { + errx(1, "Erro ao remover!"); + + } else if (x < (*i)->elemento) { + removerRec(x, &((*i)->esq)); + + } else if (x > (*i)->elemento) { + removerRec(x, &((*i)->dir)); + + } else if ((*i)->dir == NULL) { + No* del = *i; + *i = (*i)->esq; + free(del); + + } else if ((*i)->esq == NULL) { + No* del = *i; + *i = (*i)->dir; + free(del); + + } else { + sucessor(i, &((*i)->dir)); + } +} + +/** + * Metodo para trocar no removido pelo sucessor. + * @param i No** endereco do ponteiro No que contem o elemento removido. + * @param j No** endereco do ponteiro No da subarvore esquerda. + */ +void sucessor(No** i, No** j) { + if ((*j)->esq != NULL) { + sucessor(i, &((*j)->esq)); + + } else { + No* del = *j; + (*i)->elemento = (*j)->elemento; + (*j) = (*j)->dir; + free(del); + } +} diff --git a/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.h b/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.h index f00b1ae..8f59d72 100644 --- a/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.h +++ b/fonte/U7 - Árvores binárias/c/arvoreBinariaC/arvorebinaria.h @@ -15,6 +15,8 @@ void caminharPosRec(No*); void inserirRec(int, No**); void removerRec(int, No**); void antecessor(No**, No**); +void removerRecSucessor(int, No**); +void sucessor(No**, No**); void start(); bool pesquisar(int); @@ -23,3 +25,4 @@ void caminharPre(); void caminharPos(); void inserir(int); void remover(int); +void removerSucessor(int); diff --git a/fonte/U7 - Árvores binárias/c/arvoreBinariaC/exec b/fonte/U7 - Árvores binárias/c/arvoreBinariaC/exec new file mode 100755 index 0000000000000000000000000000000000000000..86b5765c2299f761e96274d3b4d1b9fcc089073b GIT binary patch literal 17616 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 N?^6=