Hercles Posted March 7, 2015 at 06:22 PM Report Share #578908 Posted March 7, 2015 at 06:22 PM (edited) Caros, tem duvidas no entendimento do código que posto abaixo. Vou postar todo o código e ser aparecerem outras duvidas vou perguntado. Minha primeira dúvida é porque prox recebe -1 ? public class No { //todo no de lista tem um campo de informação //e um de próximo elemento. int info, prox; No(int info) { this.info = info; prox = -1; } public String toString() { return info + "\t"; } } A segunda duvida porque que prim recebe -1? public class ListaEncadeadaInteirosComVetores { //O "tamanho" da lista é 10 neste caso. private final int TAM_MAX_LISTA = 10; //A lista propriamente dita. No[] lista; //O primeiro indice da lista. int prim; //Inicialmente, a lista não possui nenhum elemento. ListaEncadeadaInteirosComVetores() { lista = new No[TAM_MAX_LISTA]; prim = -1; } void insereNoInicio(int info) { int i; //Acha a primeira posição livre do vetor. for (i = 0; i < lista.length; i++) { if (lista[i] == null) { break; } } //Se encontrou uma posição livre, faça prim apontar para esta //posição e o campo prox deve ser atualizado. if (i < lista.length) { lista[i] = new No(info); lista[i].prox = prim; prim = i; } } int removeDoInicio() { //Se a lista está vazia, retorne uma constante que significa erro. if (prim == -1) { return Integer.valueOf(Integer.MIN_VALUE); } //Senão, retire o primeiro elemento da lista, atualizando prim. int resp = lista[prim].info, ind = prim; prim = lista[prim].prox; lista[ind] = null; return resp; } void insereNoFim(int info) { int i; //Acha a primeira posição livre do vetor. for (i = 0; i < lista.length; i++) { if (lista[i] == null) { break; } } //Senão, insira na última posição da lista. if (i < lista.length) { lista[i] = new No(info); int q = prim, ant = prim; //Procure a última posição da lista marcada com ant. while (q != -1) { ant = q; q = lista[q].prox; } //Se a lista está vazia, a inserção será na posição zero. if (ant == -1) { prim = i; } //Senão, a inserção deve ser na posição correta. else { lista[ant].prox = i; } } } int removeDoFim() { //Se a lista está vazia, retorne uma constante que significa erro. if (prim == -1) { return Integer.valueOf(Integer.MIN_VALUE); } int q = prim, ant = prim; //Senão, retire o último elemento da lista. //Ache a posição do último elemento. while (lista[q].prox != -1) { ant = q; q = lista[q].prox; } //Se só tem um elemento, retire-o da lista e atualiza prim. int resp = lista[ant].info; if (ant == prim) { prim = -1; lista[ant] = null; } //Senão, faça o penúltimo ser o último elemento da lista. else { int ind = lista[ant].prox; lista[ant].prox = -1; lista[ind] = null; } return resp; } //A lista está vazia se prim está com o valor igual a -1. boolean estaVazia() { return prim == -1 ; } //A impressão usa toString de nó. A ideia é passar por cada //elemento imprimindo a informação. public String toString() { String resp = ""; int ind = prim; while (ind != -1) { resp += lista[ind].toString(); ind = lista[ind].prox; } return resp; } } Edited March 7, 2015 at 06:24 PM by Hercles Link to comment Share on other sites More sharing options...
alexandre1985 Posted March 7, 2015 at 07:25 PM Report Share #578909 Posted March 7, 2015 at 07:25 PM -1 é para indicar que as classes acabaram de ser criadas. Para verificar isso de certeza que vai haver alguma coisa do género instancia.get() == -1 para se verificar. http://alexandre1985.github.io Link to comment Share on other sites More sharing options...
Hercles Posted March 7, 2015 at 09:42 PM Author Report Share #578916 Posted March 7, 2015 at 09:42 PM poxa não entendi rsrs 😉 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now