diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/coletalixo.c b/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/coletalixo.c
index a89cbfa..4acc597 100644
--- a/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/coletalixo.c
+++ b/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/coletalixo.c
@@ -8,31 +8,31 @@ typedef struct Celula {
} Celula;
Celula* novaCelula(int elemento) {
- Celula* nova = (Celula*) malloc(sizeof(Celula));
- nova->elemento = elemento;
- nova->prox = NULL;
- return nova;
+ Celula* nova = (Celula*) malloc(sizeof(Celula));
+ nova->elemento = elemento;
+ nova->prox = NULL;
+ return nova;
}
Celula* primeiro;
void start () {
- primeiro = novaCelula(-1);
+ primeiro = novaCelula(-1);
}
void inserir(int x) {
- primeiro->prox = novaCelula(x);
- Celula* tmp = primeiro;
- primeiro = primeiro->prox;
- free(tmp);
+ primeiro->prox = novaCelula(x);
+ Celula* tmp = primeiro;
+ primeiro = primeiro->prox;
+ free(tmp);
}
int main(int argc, char** argv) {
- start();
- while(true){
- inserir(0);
- }
- return 0;
+ start();
+ while(true){
+ inserir(0);
+ }
+ return 0;
}
diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/xx b/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/xx
deleted file mode 100755
index d428586..0000000
Binary files a/fonte/u06 Estruturas de dados básicas flexíveis/c/coletalixo/xx and /dev/null differ
diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/FilaNativa.java b/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/FilaNativa.java
index 9a04885..67d305f 100644
--- a/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/FilaNativa.java
+++ b/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/FilaNativa.java
@@ -8,7 +8,7 @@ public class FilaNativa {
fila.add("Cruzeiro");
fila.add("América");
- while (fila.isEmpty() == false){
+ while (!fila.isEmpty()){
System.out.println("Retirando da fila: " + fila.remove());
}
}
diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/ListaNativa.java b/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/ListaNativa.java
index ec73fc1..5aeed72 100644
--- a/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/ListaNativa.java
+++ b/fonte/u06 Estruturas de dados básicas flexíveis/java/TADs Nativos em Java/ListaNativa.java
@@ -33,3 +33,4 @@ class ListaNativa {
}
}
}
+
diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/Celula.java b/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/Celula.java
index 866b654..19a6462 100644
--- a/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/Celula.java
+++ b/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/Celula.java
@@ -4,23 +4,23 @@
* @version 2 01/2015
*/
class Celula {
- public int elemento; // Elemento inserido na celula.
- public Celula prox; // Aponta a celula prox.
+ public int elemento; // Elemento inserido na celula.
+ public Celula prox; // Aponta a celula prox.
- /**
- * Construtor da classe.
- */
- public Celula() {
- this(0);
- }
+ /**
+ * Construtor da classe.
+ */
+ public Celula() {
+ this(0);
+ }
- /**
- * Construtor da classe.
- * @param elemento int inserido na celula.
- */
- public Celula(int elemento) {
- this.elemento = elemento;
- this.prox = null;
- }
+ /**
+ * Construtor da classe.
+ * @param elemento int inserido na celula.
+ */
+ public Celula(int elemento) {
+ this.elemento = elemento;
+ this.prox = null;
+ }
}
diff --git a/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/ColetaLixo.java b/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/ColetaLixo.java
index 1e63a54..902bbcc 100644
--- a/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/ColetaLixo.java
+++ b/fonte/u06 Estruturas de dados básicas flexíveis/java/coletalixo/ColetaLixo.java
@@ -1,24 +1,23 @@
class ColetaLixo {
- private Celula primeiro;
+ private Celula primeiro;
- public ColetaLixo () {
- primeiro = new Celula();
- }
+ public ColetaLixo () {
+ primeiro = new Celula();
+ }
- public void inserir(int x) {
- primeiro.prox = new Celula(x);
- primeiro = primeiro.prox;
- }
+ public void inserir(int x) {
+ primeiro.prox = new Celula(x);
+ primeiro = primeiro.prox;
+ }
- public static void main (String [] args) {
- ColetaLixo coletaLixo = new ColetaLixo ();
-
- while(true){
- coletaLixo.inserir(0);
- }
- }
+ public static void main (String [] args) {
+ ColetaLixo coletaLixo = new ColetaLixo ();
+ while(true){
+ coletaLixo.inserir(0);
+ }
+ }
}
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/c/arvorebinaria.c b/fonte/u07 Árvores binárias/arvoreBinaria/c/arvorebinaria.c
index 832f809..b3b2e42 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/c/arvorebinaria.c
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/c/arvorebinaria.c
@@ -198,3 +198,6 @@ void maiorEsq(No** i, No** j) {
free(del);
}
}
+
+
+
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/c/makefile b/fonte/u07 Árvores binárias/arvoreBinaria/c/makefile
index f33f538..4a4b21c 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/c/makefile
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/c/makefile
@@ -1,5 +1,5 @@
all: exec
-
+
exec: principal.o arvorebinaria.o no.o
gcc -o exec principal.o arvorebinaria.o no.o
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/c/principal.c b/fonte/u07 Árvores binárias/arvoreBinaria/c/principal.c
index 3076040..5e5ba39 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/c/principal.c
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/c/principal.c
@@ -55,6 +55,5 @@ int main(){
caminharPre();
caminharPos();
-
return 1;
}
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.cc b/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.cc
index 518de40..80978db 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.cc
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.cc
@@ -10,7 +10,7 @@
* Construtor da classe.
*/
ArvoreBinaria::ArvoreBinaria() {
- raiz = NULL;
+ raiz = NULL;
}
/**
@@ -20,7 +20,7 @@ ArvoreBinaria::ArvoreBinaria() {
* false em caso contrario.
*/
bool ArvoreBinaria::pesquisar(int x) {
- return pesquisar(x, raiz);
+ return pesquisar(x, raiz);
}
/**
@@ -31,29 +31,29 @@ bool ArvoreBinaria::pesquisar(int x) {
* false em caso contrario.
*/
bool ArvoreBinaria::pesquisar(int x, No* i) {
- bool resp;
- if (i == NULL) {
- resp = false;
+ bool resp;
+ if (i == NULL) {
+ resp = false;
- } else if (x == i->elemento) {
- resp = true;
+ } else if (x == i->elemento) {
+ resp = true;
- } else if (x < i->elemento) {
- resp = pesquisar(x, i->esq);
+ } else if (x < i->elemento) {
+ resp = pesquisar(x, i->esq);
- } else {
- resp = pesquisar(x, i->dir);
- }
- return resp;
+ } else {
+ resp = pesquisar(x, i->dir);
+ }
+ return resp;
}
/**
* Metodo publico iterativo para exibir elementos.
*/
void ArvoreBinaria::caminharCentral() {
- cout << "[ ";
- caminharCentral(raiz);
- cout << "]\n";
+ cout << "[ ";
+ caminharCentral(raiz);
+ cout << "]\n";
}
/**
@@ -61,20 +61,20 @@ void ArvoreBinaria::caminharCentral() {
* @param i No em analise.
*/
void ArvoreBinaria::caminharCentral(No* i) {
- if (i != NULL) {
- caminharCentral(i->esq); // Elementos da esquerda.
- cout << i->elemento << " "; // Conteudo do no.
- caminharCentral(i->dir); // Elementos da direita.
- }
+ if (i != NULL) {
+ caminharCentral(i->esq); // Elementos da esquerda.
+ cout << i->elemento << " "; // Conteudo do no.
+ caminharCentral(i->dir); // Elementos da direita.
+ }
}
/**
* Metodo publico iterativo para exibir elementos.
*/
void ArvoreBinaria::caminharPre() {
- cout << "[ ";
- caminharPre(raiz);
- cout << "]\n";
+ cout << "[ ";
+ caminharPre(raiz);
+ cout << "]\n";
}
/**
@@ -82,20 +82,20 @@ void ArvoreBinaria::caminharPre() {
* @param i No em analise.
*/
void ArvoreBinaria::caminharPre(No* i) {
- if (i != NULL) {
- cout << i->elemento << " "; // Conteudo do no.
- caminharPre(i->esq); // Elementos da esquerda.
- caminharPre(i->dir); // Elementos da direita.
- }
+ if (i != NULL) {
+ cout << i->elemento << " "; // Conteudo do no.
+ caminharPre(i->esq); // Elementos da esquerda.
+ caminharPre(i->dir); // Elementos da direita.
+ }
}
/**
* Metodo publico iterativo para exibir elementos.
*/
void ArvoreBinaria::caminharPos() {
- cout << "[ ";
- caminharPos(raiz);
- cout << "]\n";
+ cout << "[ ";
+ caminharPos(raiz);
+ cout << "]\n";
}
/**
@@ -103,11 +103,11 @@ void ArvoreBinaria::caminharPos() {
* @param i No em analise.
*/
void ArvoreBinaria::caminharPos(No* i) {
- if (i != NULL) {
- caminharPos(i->esq); // Elementos da esquerda.
- caminharPos(i->dir); // Elementos da direita.
- cout << i->elemento << " "; // Conteudo do no.
- }
+ if (i != NULL) {
+ caminharPos(i->esq); // Elementos da esquerda.
+ caminharPos(i->dir); // Elementos da direita.
+ cout << i->elemento << " "; // Conteudo do no.
+ }
}
/**
@@ -115,7 +115,7 @@ void ArvoreBinaria::caminharPos(No* i) {
* @param x Elemento a ser inserido.
*/
void ArvoreBinaria::inserir(int x) {
- inserir(x, raiz);
+ inserir(x, raiz);
}
/**
@@ -124,26 +124,26 @@ void ArvoreBinaria::inserir(int x) {
* @param i No em analise.
*/
void ArvoreBinaria::inserir(int x, No* &i) {
- if (i == NULL) {
- i = new No(x);
+ if (i == NULL) {
+ i = new No(x);
- } else if (x < i->elemento) {
- inserir(x, i->esq);
+ } else if (x < i->elemento) {
+ inserir(x, i->esq);
- } else if (x > i->elemento) {
- inserir(x, i->dir);
+ } else if (x > i->elemento) {
+ inserir(x, i->dir);
- } else {
- errx(1, "Erro ao inserir!");
- }
+ } else {
+ errx(1, "Erro ao inserir!");
+ }
}
- /**
- * Metodo publico iterativo para remover elemento.
- * @param x Elemento a ser removido.
+/**
+ * Metodo publico iterativo para remover elemento.
+ * @param x Elemento a ser removido.
*/
void ArvoreBinaria::remover(int x) {
- remover(x, raiz);
+ remover(x, raiz);
}
/**
@@ -152,31 +152,31 @@ void ArvoreBinaria::remover(int x) {
* @param i No em analise.
*/
void ArvoreBinaria::remover(int x, No* &i) {
- if (i == NULL) {
- errx(1, "Erro ao remover!");
+ if (i == NULL) {
+ errx(1, "Erro ao remover!");
- } else if (x < i->elemento) {
- remover(x, i->esq);
+ } else if (x < i->elemento) {
+ remover(x, i->esq);
- } else if (x > i->elemento) {
- remover(x, i->dir);
+ } else if (x > i->elemento) {
+ remover(x, i->dir);
- // Sem no a direita.
- } else if (i->dir == NULL) {
- No* del = i;
- i = i->esq;
- delete del;
+ // Sem no a direita.
+ } else if (i->dir == NULL) {
+ No* del = i;
+ i = i->esq;
+ delete del;
- // Sem no a esquerda.
- } else if (i->esq == NULL) {
- No* del = i;
- i = i->dir;
- delete del;
+ // Sem no a esquerda.
+ } else if (i->esq == NULL) {
+ No* del = i;
+ i = i->dir;
+ delete del;
- // No a esquerda e no a direita.
- } else {
- maiorEsq(i, i->esq);
- }
+ // No a esquerda e no a direita.
+ } else {
+ maiorEsq(i, i->esq);
+ }
}
@@ -186,15 +186,15 @@ void ArvoreBinaria::remover(int x, No* &i) {
* @param j No da subarvore esquerda.
*/
void ArvoreBinaria::maiorEsq(No* i, No* &j) {
- // Encontrou o maximo da subarvore esquerda.
- if (j->dir == NULL) {
- No* del = j;
- i->elemento = j->elemento; // Substitui i por j.
- j = j->esq; // Substitui j por j.ESQ.
- delete del;
+ // Encontrou o maximo da subarvore esquerda.
+ if (j->dir == NULL) {
+ No* del = j;
+ i->elemento = j->elemento; // Substitui i por j.
+ j = j->esq; // Substitui j por j.ESQ.
+ delete del;
- // Existe no a direita.
- } else {
- maiorEsq(i, j->dir); // Caminha para direita.
- }
+ // Existe no a direita.
+ } else {
+ maiorEsq(i, j->dir); // Caminha para direita.
+ }
}
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.h b/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.h
index bedb393..bf50f95 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.h
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/cc/arvorebinaria.h
@@ -6,22 +6,22 @@
#include "no.h"
class ArvoreBinaria {
- private:
- No* raiz; // Raiz da arvore.
- bool pesquisar(int, No*);
- void caminharCentral(No*);
- void caminharPre(No*);
- void caminharPos(No*);
- void inserir(int, No* &);
- void remover(int, No* &);
- void antecessor(No*, No* &);
+ private:
+ No* raiz; // Raiz da arvore.
+ bool pesquisar(int, No*);
+ void caminharCentral(No*);
+ void caminharPre(No*);
+ void caminharPos(No*);
+ void inserir(int, No* &);
+ void remover(int, No* &);
+ void maiorEsq(No*, No* &);
- public:
- ArvoreBinaria();
- bool pesquisar(int);
- void caminharCentral();
- void caminharPre();
- void caminharPos();
- void inserir(int);
- void remover(int);
+ public:
+ ArvoreBinaria();
+ bool pesquisar(int);
+ void caminharCentral();
+ void caminharPre();
+ void caminharPos();
+ void inserir(int);
+ void remover(int);
};
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/cc/no.h b/fonte/u07 Árvores binárias/arvoreBinaria/cc/no.h
index e080e9c..31eada6 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/cc/no.h
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/cc/no.h
@@ -7,8 +7,8 @@
using namespace std;
class No {
- public:
- int elemento; // Conteudo do no.
- No *esq, *dir; // Filhos da esq e dir.
- No(int);
+ public:
+ int elemento; // Conteudo do no.
+ No *esq, *dir; // Filhos da esq e dir.
+ No(int);
};
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/java/ArvoreBinaria.java b/fonte/u07 Árvores binárias/arvoreBinaria/java/ArvoreBinaria.java
index 01fff46..f54248e 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/java/ArvoreBinaria.java
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/java/ArvoreBinaria.java
@@ -3,407 +3,400 @@
* @author Max do Val Machado
*/
public class ArvoreBinaria {
- private No raiz; // Raiz da arvore.
+ private No raiz; // Raiz da arvore.
- /**
- * Construtor da classe.
- */
- public ArvoreBinaria() {
- raiz = null;
- }
+ /**
+ * Construtor da classe.
+ */
+ public ArvoreBinaria() {
+ raiz = null;
+ }
- /**
- * Metodo publico iterativo para pesquisar elemento.
- * @param x Elemento que sera procurado.
- * @return true se o elemento existir,
- * false em caso contrario.
- */
- public boolean pesquisar(int x) {
- return pesquisar(x, raiz);
- }
+ /**
+ * Metodo publico iterativo para pesquisar elemento.
+ * @param x Elemento que sera procurado.
+ * @return true se o elemento existir,
+ * false em caso contrario.
+ */
+ public boolean pesquisar(int x) {
+ return pesquisar(x, raiz);
+ }
- /**
- * Metodo privado recursivo para pesquisar elemento.
- * @param x Elemento que sera procurado.
- * @param i No em analise.
- * @return true se o elemento existir,
- * false em caso contrario.
- */
- private boolean pesquisar(int x, No i) {
- boolean resp;
- if (i == null) {
- resp = false;
+ /**
+ * Metodo privado recursivo para pesquisar elemento.
+ * @param x Elemento que sera procurado.
+ * @param i No em analise.
+ * @return true se o elemento existir,
+ * false em caso contrario.
+ */
+ private boolean pesquisar(int x, No i) {
+ boolean resp;
+ if (i == null) {
+ resp = false;
+ } else if (x == i.elemento) {
+ resp = true;
+ } else if (x < i.elemento) {
+ resp = pesquisar(x, i.esq);
+ } else {
+ resp = pesquisar(x, i.dir);
+ }
+ return resp;
+ }
- } else if (x == i.elemento) {
- resp = true;
+ /**
+ * Metodo publico iterativo para exibir elementos.
+ */
+ public void caminharCentral() {
+ System.out.print("[ ");
+ caminharCentral(raiz);
+ System.out.println("]");
+ }
- } else if (x < i.elemento) {
- resp = pesquisar(x, i.esq);
+ /**
+ * Metodo privado recursivo para exibir elementos.
+ * @param i No em analise.
+ */
+ private void caminharCentral(No i) {
+ if (i != null) {
+ caminharCentral(i.esq); // Elementos da esquerda.
+ System.out.print(i.elemento + " "); // Conteudo do no.
+ caminharCentral(i.dir); // Elementos da direita.
+ }
+ }
- } else {
- resp = pesquisar(x, i.dir);
- }
- return resp;
- }
+ /**
+ * Metodo publico iterativo para exibir elementos.
+ */
+ public void caminharPre() {
+ System.out.print("[ ");
+ caminharPre(raiz);
+ System.out.println("]");
+ }
- /**
- * Metodo publico iterativo para exibir elementos.
- */
- public void caminharCentral() {
- System.out.print("[ ");
- caminharCentral(raiz);
- System.out.println("]");
- }
+ /**
+ * Metodo privado recursivo para exibir elementos.
+ * @param i No em analise.
+ */
+ private void caminharPre(No i) {
+ if (i != null) {
+ System.out.print(i.elemento + " "); // Conteudo do no.
+ caminharPre(i.esq); // Elementos da esquerda.
+ caminharPre(i.dir); // Elementos da direita.
+ }
+ }
- /**
- * Metodo privado recursivo para exibir elementos.
- * @param i No em analise.
- */
- private void caminharCentral(No i) {
- if (i != null) {
- caminharCentral(i.esq); // Elementos da esquerda.
- System.out.print(i.elemento + " "); // Conteudo do no.
- caminharCentral(i.dir); // Elementos da direita.
- }
- }
+ /**
+ * Metodo publico iterativo para exibir elementos.
+ */
+ public void caminharPos() {
+ System.out.print("[ ");
+ caminharPos(raiz);
+ System.out.println("]");
+ }
- /**
- * Metodo publico iterativo para exibir elementos.
- */
- public void caminharPre() {
- System.out.print("[ ");
- caminharPre(raiz);
- System.out.println("]");
- }
-
- /**
- * Metodo privado recursivo para exibir elementos.
- * @param i No em analise.
- */
- private void caminharPre(No i) {
- if (i != null) {
- System.out.print(i.elemento + " "); // Conteudo do no.
- caminharPre(i.esq); // Elementos da esquerda.
- caminharPre(i.dir); // Elementos da direita.
- }
- }
-
- /**
- * Metodo publico iterativo para exibir elementos.
- */
- public void caminharPos() {
- System.out.print("[ ");
- caminharPos(raiz);
- System.out.println("]");
- }
-
- /**
- * Metodo privado recursivo para exibir elementos.
- * @param i No em analise.
- */
- private void caminharPos(No i) {
- if (i != null) {
- caminharPos(i.esq); // Elementos da esquerda.
- caminharPos(i.dir); // Elementos da direita.
- System.out.print(i.elemento + " "); // Conteudo do no.
- }
- }
+ /**
+ * Metodo privado recursivo para exibir elementos.
+ * @param i No em analise.
+ */
+ private void caminharPos(No i) {
+ if (i != null) {
+ caminharPos(i.esq); // Elementos da esquerda.
+ caminharPos(i.dir); // Elementos da direita.
+ System.out.print(i.elemento + " "); // Conteudo do no.
+ }
+ }
- /**
- * Metodo publico iterativo para inserir elemento.
- * @param x Elemento a ser inserido.
- * @throws Exception Se o elemento existir.
- */
- public void inserir(int x) throws Exception {
- raiz = inserir(x, raiz);
- }
+ /**
+ * Metodo publico iterativo para inserir elemento.
+ * @param x Elemento a ser inserido.
+ * @throws Exception Se o elemento existir.
+ */
+ public void inserir(int x) throws Exception {
+ raiz = inserir(x, raiz);
+ }
- /**
- * Metodo privado recursivo para inserir elemento.
- * @param x Elemento a ser inserido.
- * @param i No em analise.
- * @return No em analise, alterado ou nao.
- * @throws Exception Se o elemento existir.
- */
- private No inserir(int x, No i) throws Exception {
- if (i == null) {
- i = new No(x);
+ /**
+ * Metodo privado recursivo para inserir elemento.
+ * @param x Elemento a ser inserido.
+ * @param i No em analise.
+ * @return No em analise, alterado ou nao.
+ * @throws Exception Se o elemento existir.
+ */
+ private No inserir(int x, No i) throws Exception {
+ if (i == null) {
+ i = new No(x);
+ } else if (x < i.elemento) {
+ i.esq = inserir(x, i.esq);
+ } else if (x > i.elemento) {
+ i.dir = inserir(x, i.dir);
+ } else {
+ throw new Exception("Erro ao inserir!");
+ }
+ return i;
+ }
- } else if (x < i.elemento) {
- i.esq = inserir(x, i.esq);
+ /**
+ * Metodo publico para inserir elemento.
+ * @param x Elemento a ser inserido.
+ * @throws Exception Se o elemento existir.
+ */
+ public void inserirPai(int x) throws Exception {
+ if(raiz == null){
+ raiz = new No(x);
+ } else if(x < raiz.elemento){
+ inserirPai(x, raiz.esq, raiz);
+ } else if(x > raiz.elemento){
+ inserirPai(x, raiz.dir, raiz);
+ } else {
+ throw new Exception("Erro ao inserirPai!");
+ }
+ }
- } else if (x > i.elemento) {
- i.dir = inserir(x, i.dir);
-
- } else {
- throw new Exception("Erro ao inserir!");
- }
-
- return i;
- }
-
- /**
- * Metodo publico para inserir elemento.
- * @param x Elemento a ser inserido.
- * @throws Exception Se o elemento existir.
- */
- public void inserirPai(int x) throws Exception {
- if(raiz == null){
- raiz = new No(x);
- } else if(x < raiz.elemento){
- inserirPai(x, raiz.esq, raiz);
- } else if(x > raiz.elemento){
- inserirPai(x, raiz.dir, raiz);
- } else {
- throw new Exception("Erro ao inserirPai!");
- }
- }
-
- /**
- * Metodo privado recursivo para inserirPai elemento.
- * @param x Elemento a ser inserido.
- * @param i No em analise.
- * @param pai No superior ao em analise.
- * @throws Exception Se o elemento existir.
- */
- private void inserirPai(int x, No i, No pai) throws Exception {
- if (i == null) {
- if(x < i.elemento){
- pai.esq = new No(x);
- } else {
- pai.dir = new No(x);
- }
- } else if (x < i.elemento) {
- inserirPai(x, i.esq, i);
- } else if (x > i.elemento) {
- inserirPai(x, i.dir, i);
- } else {
- throw new Exception("Erro ao inserirPai!");
- }
- }
+ /**
+ * Metodo privado recursivo para inserirPai elemento.
+ * @param x Elemento a ser inserido.
+ * @param i No em analise.
+ * @param pai No superior ao em analise.
+ * @throws Exception Se o elemento existir.
+ */
+ private void inserirPai(int x, No i, No pai) throws Exception {
+ if (i == null) {
+ if(x < pai.elemento){
+ pai.esq = new No(x);
+ } else {
+ pai.dir = new No(x);
+ }
+ } else if (x < i.elemento) {
+ inserirPai(x, i.esq, i);
+ } else if (x > i.elemento) {
+ inserirPai(x, i.dir, i);
+ } else {
+ throw new Exception("Erro ao inserirPai!");
+ }
+ }
- /**
- * Metodo publico iterativo para remover elemento.
- * @param x Elemento a ser removido.
- * @throws Exception Se nao encontrar elemento.
- */
- public void remover(int x) throws Exception {
- raiz = remover(x, raiz);
- }
+ /**
+ * Metodo publico iterativo para remover elemento.
+ * @param x Elemento a ser removido.
+ * @throws Exception Se nao encontrar elemento.
+ */
+ public void remover(int x) throws Exception {
+ raiz = remover(x, raiz);
+ }
- /**
- * Metodo privado recursivo para remover elemento.
- * @param x Elemento a ser removido.
- * @param i No em analise.
- * @return No em analise, alterado ou nao.
- * @throws Exception Se nao encontrar elemento.
- */
- private No remover(int x, No i) throws Exception {
+ /**
+ * Metodo privado recursivo para remover elemento.
+ * @param x Elemento a ser removido.
+ * @param i No em analise.
+ * @return No em analise, alterado ou nao.
+ * @throws Exception Se nao encontrar elemento.
+ */
+ private No remover(int x, No i) throws Exception {
- if (i == null) {
- throw new Exception("Erro ao remover!");
+ if (i == null) {
+ throw new Exception("Erro ao remover!");
- } else if (x < i.elemento) {
- i.esq = remover(x, i.esq);
+ } else if (x < i.elemento) {
+ i.esq = remover(x, i.esq);
- } else if (x > i.elemento) {
- i.dir = remover(x, i.dir);
+ } else if (x > i.elemento) {
+ i.dir = remover(x, i.dir);
- // Sem no a direita.
- } else if (i.dir == null) {
- i = i.esq;
+ // Sem no a direita.
+ } else if (i.dir == null) {
+ i = i.esq;
- // Sem no a esquerda.
- } else if (i.esq == null) {
- i = i.dir;
+ // Sem no a esquerda.
+ } else if (i.esq == null) {
+ i = i.dir;
- // No a esquerda e no a direita.
- } else {
- i.esq = maiorEsq(i, i.esq);
- }
+ // No a esquerda e no a direita.
+ } else {
+ i.esq = maiorEsq(i, i.esq);
+ }
- return i;
- }
+ return i;
+ }
- /**
- * Metodo para trocar o elemento "removido" pelo maior da esquerda.
- * @param i No que teve o elemento removido.
- * @param j No da subarvore esquerda.
- * @return No em analise, alterado ou nao.
- */
- private No maiorEsq(No i, No j) {
+ /**
+ * Metodo para trocar o elemento "removido" pelo maior da esquerda.
+ * @param i No que teve o elemento removido.
+ * @param j No da subarvore esquerda.
+ * @return No em analise, alterado ou nao.
+ */
+ private No maiorEsq(No i, No j) {
- // Encontrou o maximo da subarvore esquerda.
- if (j.dir == null) {
- i.elemento = j.elemento; // Substitui i por j.
- j = j.esq; // Substitui j por j.ESQ.
+ // Encontrou o maximo da subarvore esquerda.
+ if (j.dir == null) {
+ i.elemento = j.elemento; // Substitui i por j.
+ j = j.esq; // Substitui j por j.ESQ.
- // Existe no a direita.
- } else {
- // Caminha para direita.
- j.dir = maiorEsq(i, j.dir);
- }
- return j;
- }
+ // Existe no a direita.
+ } else {
+ // Caminha para direita.
+ j.dir = maiorEsq(i, j.dir);
+ }
+ return j;
+ }
- /**
- * Metodo que retorna o maior elemento da árvore
- * @return int maior elemento da árvore
- */
- public int getMaior(){
- int resp = -1;
-
- if(raiz != null){
- No i;
- for(i = raiz; i.dir != null; i = i.dir);
- resp = i.elemento;
- }
-
- return resp;
- }
+ /**
+ * Metodo que retorna o maior elemento da árvore
+ * @return int maior elemento da árvore
+ */
+ public int getMaior(){
+ int resp = -1;
+ if(raiz != null){
+ No i;
+ for(i = raiz; i.dir != null; i = i.dir);
+ resp = i.elemento;
+ }
+ return resp;
+ }
- /**
- * Metodo que retorna o menor elemento da árvore
- * @return int menor elemento da árvore
- */
- public int getMenor(){
- int resp = -1;
-
- if(raiz != null){
- No i;
- for(i = raiz; i.esq != null; i = i.esq);
- resp = i.elemento;
- }
-
- return resp;
- }
+ /**
+ * Metodo que retorna o menor elemento da árvore
+ * @return int menor elemento da árvore
+ */
+ public int getMenor(){
+ int resp = -1;
+ if(raiz != null){
+ No i;
+ for(i = raiz; i.esq != null; i = i.esq);
+ resp = i.elemento;
+ }
+ return resp;
+ }
- /**
- * Metodo que retorna a altura da árvore
- * @return int altura da árvore
- */
- public int getAltura(){
- return getAltura(raiz, 0);
- }
+ /**
+ * Metodo que retorna a altura da árvore
+ * @return int altura da árvore
+ */
+ public int getAltura(){
+ return getAltura(raiz, 0);
+ }
+
+ /**
+ * Metodo que retorna a altura da árvore
+ * @return int altura da árvore
+ */
+ public int getAltura(No i, int altura){
+ if(i == null){
+ altura--;
+ } else {
+ int alturaEsq = getAltura(i.esq, altura + 1);
+ int alturaDir = getAltura(i.dir, altura + 1);
+ altura = (alturaEsq > alturaDir) ? alturaEsq : alturaDir;
+ }
+ return altura;
+ }
- /**
- * Metodo que retorna a altura da árvore
- * @return int altura da árvore
- */
- public int getAltura(No i, int altura){
- if(i == null){
- altura--;
- } else {
- int alturaEsq = getAltura(i.esq, altura + 1);
- int alturaDir = getAltura(i.dir, altura + 1);
- altura = (alturaEsq > alturaDir) ? alturaEsq : alturaDir;
- }
- return altura;
- }
+ /**
+ * Metodo publico iterativo para remover elemento.
+ * @param x Elemento a ser removido.
+ * @throws Exception Se nao encontrar elemento.
+ */
+ public void remover2(int x) throws Exception {
+ if (raiz == null) {
+ throw new Exception("Erro ao remover2!");
+ } else if(x < raiz.elemento){
+ remover2(x, raiz.esq, raiz);
+ } else if (x > raiz.elemento){
+ remover2(x, raiz.dir, raiz);
+ } else if (raiz.dir == null) {
+ raiz = raiz.esq;
+ } else if (raiz.esq == null) {
+ raiz = raiz.dir;
+ } else {
+ raiz.esq = maiorEsq(raiz, raiz.esq);
+ }
+ }
+ /**
+ * Metodo privado recursivo para remover elemento.
+ * @param x Elemento a ser removido.
+ * @param i No em analise.
+ * @param pai do No em analise.
+ * @throws Exception Se nao encontrar elemento.
+ */
+ private void remover2(int x, No i, No pai) throws Exception {
+ if (i == null) {
+ throw new Exception("Erro ao remover2!");
+ } else if (x < i.elemento) {
+ remover2(x, i.esq, i);
+ } else if (x > i.elemento) {
+ remover2(x, i.dir, i);
+ } else if (i.dir == null) {
+ pai = i.esq;
+ } else if (i.esq == null) {
+ pai = i.dir;
+ } else {
+ i.esq = maiorEsq(i, i.esq);
+ }
+ }
- /**
- * Metodo publico iterativo para remover elemento.
- * @param x Elemento a ser removido.
- * @throws Exception Se nao encontrar elemento.
- */
- public void remover2(int x) throws Exception {
- if (raiz == null) {
- throw new Exception("Erro ao remover2!");
- } else if(x < raiz.elemento){
- remover2(x, raiz.esq, raiz);
- } else if (x > raiz.elemento){
- remover2(x, raiz.dir, raiz);
- } else if (raiz.dir == null) {
- raiz = raiz.esq;
- } else if (raiz.esq == null) {
- raiz = raiz.dir;
- } else {
- raiz.esq = maiorEsq(raiz, raiz.esq);
- }
- }
+ public int getRaiz() throws Exception {
+ return raiz.elemento;
+ }
- /**
- * Metodo privado recursivo para remover elemento.
- * @param x Elemento a ser removido.
- * @param i No em analise.
- * @param pai do No em analise.
- * @throws Exception Se nao encontrar elemento.
- */
- private void remover2(int x, No i, No pai) throws Exception {
- if (i == null) {
- throw new Exception("Erro ao remover2!");
- } else if (x < i.elemento) {
- remover2(x, i.esq, i);
- } else if (x > i.elemento) {
- remover2(x, i.dir, i);
- } else if (i.dir == null) {
- pai = i.esq;
- } else if (i.esq == null) {
- pai = i.dir;
- } else {
- i.esq = maiorEsq(i, i.esq);
- }
- }
+ public static boolean igual (ArvoreBinaria a1, ArvoreBinaria a2){
+ return igual(a1.raiz, a2.raiz);
+ }
- public int getRaiz() throws Exception {
- return raiz.elemento;
- }
+ private static boolean igual (No i1, No i2){
+ boolean resp;
+ if(i1 != null && i2 != null){
+ resp = (i1.elemento == i2.elemento) && igual(i1.esq, i2.esq) && igual(i1.dir, i2.dir);
+ } else if(i1 == null && i2 == null){
+ resp = true;
+ } else {
+ resp = false;
+ }
+ return resp;
+ }
- public static boolean igual (ArvoreBinaria a1, ArvoreBinaria a2){
- return igual(a1.raiz, a2.raiz);
- }
+ public int soma(){
+ return soma(raiz);
+ }
- private static boolean igual (No i1, No i2){
- boolean resp;
- if(i1 != null && i2 != null){
- resp = (i1.elemento == i2.elemento) && igual(i1.esq, i2.esq) && igual(i1.dir, i2.dir);
- } else if(i1 == null && i2 == null){
- resp = true;
- } else {
- resp = false;
- }
- return resp;
- }
+ public int soma(No i){
+ int resp = 0;
+ if(i != null){
+ resp = i.elemento;
+ resp += soma(i.esq);
+ resp += soma(i.dir);
+ }
+ return resp;
+ }
- public int soma(){
- return soma(raiz);
- }
+ public int quantidadePares(){
+ return quantidadePares(raiz);
+ }
- public int soma(No i){
- int resp = 0;
- if(i != null){
- resp = i.elemento + soma(i.esq) + soma(i.dir);
- }
- return resp;
- }
+ public int quantidadePares(No i){
+ int resp = 0;
+ if(i != null){
+ resp = ((i.elemento % 2 == 0) ? 1 : 0);
+ resp += quantidadePares(i.esq);
+ resp += quantidadePares(i.dir);
+ }
+ return resp;
+ }
- public int quantidadePares(){
- return quantidadePares(raiz);
- }
+ public boolean hasDiv11(){
+ return hasDiv11(raiz);
+ }
- public int quantidadePares(No i){
- int resp = 0;
- if(i != null){
- resp = ((i.elemento % 2 == 0) ? 1 : 0) + quantidadePares(i.esq) + quantidadePares(i.dir);
- }
- return resp;
- }
-
- public boolean hasDiv11(){
- return hasDiv11(raiz);
- }
-
- public boolean hasDiv11(No i){
- boolean resp = false;
- if(i != null){
- resp = (i.elemento % 11 == 0) || hasDiv11(i.esq) || hasDiv11(i.dir);
- }
- return resp;
- }
+ public boolean hasDiv11(No i){
+ boolean resp = false;
+ if(i != null){
+ resp = (i.elemento % 11 == 0) || hasDiv11(i.esq) || hasDiv11(i.dir);
+ }
+ return resp;
+ }
}
+
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/java/No.java b/fonte/u07 Árvores binárias/arvoreBinaria/java/No.java
index 03ee6bc..11df066 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/java/No.java
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/java/No.java
@@ -1,28 +1,31 @@
+
/**
* No da arvore binaria
* @author Max do Val Machado
*/
+
class No {
- public int elemento; // Conteudo do no.
- public No esq, dir; // Filhos da esq e dir.
+ public int elemento; // Conteudo do no.
+ public No esq, dir; // Filhos da esq e dir.
- /**
- * Construtor da classe.
- * @param elemento Conteudo do no.
- */
- public No(int elemento) {
- this(elemento, null, null);
- }
+ /**
+ * Construtor da classe.
+ * @param elemento Conteudo do no.
+ */
+ public No(int elemento) {
+ this(elemento, null, null);
+ }
- /**
- * Construtor da classe.
- * @param elemento Conteudo do no.
- * @param esq No da esquerda.
- * @param dir No da direita.
- */
- public No(int elemento, No esq, No dir) {
- this.elemento = elemento;
- this.esq = esq;
- this.dir = dir;
- }
+ /**
+ * Construtor da classe.
+ * @param elemento Conteudo do no.
+ * @param esq No da esquerda.
+ * @param dir No da direita.
+ */
+ public No(int elemento, No esq, No dir) {
+ this.elemento = elemento;
+ this.esq = esq;
+ this.dir = dir;
+ }
}
+
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal.java b/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal.java
index cf4ed9b..700c137 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal.java
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal.java
@@ -3,32 +3,13 @@
* @author Max do Val Machado
*/
public class Principal {
- public static void main(String[] args) throws Exception {
- ArvoreBinaria arvoreBinaria = new ArvoreBinaria();
-
- arvoreBinaria.inserir(3);
- arvoreBinaria.inserir(5);
- arvoreBinaria.inserir(1);
- arvoreBinaria.inserir(8);
- arvoreBinaria.inserir(2);
- arvoreBinaria.inserir(4);
- arvoreBinaria.inserir(7);
- arvoreBinaria.inserir(6);
-
- System.out.println("Altura: " + arvoreBinaria.getAltura());
- System.out.println("Menor valor: " + arvoreBinaria.getMenor());
- System.out.println("Maior valor: " + arvoreBinaria.getMaior());
-
- arvoreBinaria.caminharCentral();
- arvoreBinaria.caminharPre();
- arvoreBinaria.caminharPos();
-
- arvoreBinaria.remover(6);
- arvoreBinaria.remover(2);
- arvoreBinaria.remover(4);
-
- arvoreBinaria.caminharCentral();
- arvoreBinaria.caminharPre();
- arvoreBinaria.caminharPos();
- }
+ public static void main(String[] args) throws Exception {
+ ArvoreBinaria arvoreBinaria = new ArvoreBinaria();
+ for(int i=1; i<30; i++){
+ arvoreBinaria.inserir(i);
+ System.out.print("No. nos: " + i);
+ System.out.print("\t Altura: " + arvoreBinaria.getAltura());
+ System.out.println("\t log(2): " + Math.log(i)/Math.log(2));
+ }
+ }
}
diff --git a/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal2.java b/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal2.java
index 428f4c5..76b27dc 100644
--- a/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal2.java
+++ b/fonte/u07 Árvores binárias/arvoreBinaria/java/Principal2.java
@@ -5,24 +5,24 @@
import java.util.*;
public class Principal2 {
- public static void main(String[] args) throws Exception {
- ArvoreBinaria a = new ArvoreBinaria();
+ public static void main(String[] args) throws Exception {
+ ArvoreBinaria a = new ArvoreBinaria();
- Random gerador = new Random();
- gerador.setSeed(0);
- for(int i = 1; i <= 100000; i++){
- int valor;
- do {
- valor = Math.abs(gerador.nextInt());
- } while (a.pesquisar(valor) == true);
+ Random gerador = new Random();
+ gerador.setSeed(0);
+ for(int i = 1; i <= 100000; i++){
+ int valor;
+ do {
+ valor = Math.abs(gerador.nextInt());
+ } while (a.pesquisar(valor) == true);
- a.inserir(valor);
+ a.inserir(valor);
- if(i % 1000 == 0){
- double log2 = (Math.log(i) / Math.log(2));
- log2 *= 1.39;
- System.out.println("Número de nós = " + i + " --- log(i,2) = " + log2 + " --- h = " + a.getAltura());
- }
- }
- }
+ if(i % 1000 == 0){
+ double log2 = (Math.log(i) / Math.log(2));
+ log2 *= 1.39;
+ System.out.println("Número de nós = " + i + " --- log(i,2) = " + log2 + " --- h = " + a.getAltura());
+ }
+ }
+ }
}
diff --git a/tps/entrada e saida/tp03/TP03Q11 - Lista Flexível em Java/pub.out b/tps/entrada e saida/tp03/TP03Q11 - Lista Flexível em Java/pub.out
index 02a0087..c5b4ebc 100644
--- a/tps/entrada e saida/tp03/TP03Q11 - Lista Flexível em Java/pub.out
+++ b/tps/entrada e saida/tp03/TP03Q11 - Lista Flexível em Java/pub.out
@@ -1,4 +1,4 @@
-(R) Castle
+(R) Castle
(R) House of Cards
(R) Dexter
(R) Everybody Hates Chris