Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package LIFES;
- public class DList {
- protected DNode header;
- protected DNode tail;
- protected int size;
- public DList(){
- size = 0;
- header = new DNode(null,null,null);
- tail = new DNode(null,null,header);
- header.setNext(tail);
- }
- public int size(){
- return size;
- }
- public boolean isEmpty(){
- return size == 0;
- }
- public String toString(){
- String s = "[";
- DNode p = header.getNext();
- while(p != tail){
- s = s + p.getElement().toString();
- p = p.getNext();
- if (p != tail){
- s = s + ", ";
- }
- }
- return s + "]";
- }
- public DNode getFirst(){
- if (isEmpty()){
- System.out.println("FILA VAZIA");
- }
- return header.getNext();
- }
- public DNode getLast(){
- if (isEmpty()){
- System.out.println("FILA VAZIA");
- }
- return tail.getPrev();
- }
- public void removerRepetidos() {
- DNode auxiliar = header;
- DNode node = header;
- if (header.equals(node)) {
- this.header = auxiliar.getNext();
- while (auxiliar.getNext() != null) {
- if (node.equals(auxiliar.getNext())) {
- while (node.equals(auxiliar.getNext())) {
- auxiliar.setNext(auxiliar.getNext().getNext());
- }
- if (auxiliar.equals(node)) {
- header = auxiliar.getNext();
- }
- }
- auxiliar.setPrev(auxiliar);
- auxiliar = auxiliar.getNext();
- if (auxiliar == null) {
- break;
- }
- }
- } else {
- auxiliar = header;
- while (auxiliar.getNext() != null) {
- if (node.equals(auxiliar.getNext())) {
- while (node.equals(auxiliar.getNext())) {
- auxiliar.setNext(auxiliar.getNext().getNext());
- }
- if (auxiliar.equals(node)) {
- header = auxiliar.getNext();
- }
- }
- auxiliar.setPrev(auxiliar);
- auxiliar = auxiliar.getNext();
- if (auxiliar == null) {
- break;
- }
- }
- }
- }
- /**IMPRIMI A LISTA*/
- public void print(){
- DNode aux = header.getNext();
- if (isEmpty()){
- System.out.println("FILA VAZIA");
- }
- while(aux != tail){
- System.out.println(aux.getElement().toString());
- aux = aux.getNext();
- }
- }
- /**ADICIONA SEMPRE NA FRENTE DA LISTA*/
- public void addFirst(Object element){
- size++;
- DNode newNode = new DNode(element,header.getNext(),header);
- header.setNext(newNode);
- header.getNext().setPrev(newNode);
- }
- /**ADICIONA SEMPRE NA CAUDA DA LISTA*/
- public void addLast(Object element){
- size++;
- DNode newNode = new DNode(element, tail, tail.getPrev());
- tail.getPrev().setNext(newNode);
- tail.setPrev(newNode);
- }
- /**CLONAR A LISTA*/
- public DList clonarL(){
- DList c = new DList();
- DNode aux = header.getNext();
- while(aux != tail){
- c.addLast(aux.getElement());
- aux = aux.getNext();
- }
- return c;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement