Este artigo descreve o método de implementação da matriz de filas de loop bidirecional das estruturas e algoritmos de dados Java. Compartilhe -o para sua referência, como segue:
Deve -se notar que não testei esse algoritmo. A idéia do algoritmo dada aqui é equivalente ao pseudo-código, para que só possa ser usado como referência!
Fonte do pacote; classe pública deque {private int maxsize; privado int esquerdo; privado int certo; private int nitems; Privado longo [] mydequ; // construtor public deque (int maxSize) {this.maxsize = maxsize; this.mydequ = novo long [this.maxSize]; this.nitems = 0; this.left = this.maxSize; this.right = -1; } // Insira um número no lado esquerdo Public void insertleft (longo n) {if (this.left == 0) this.left = this.maxSize; this.mydequ [-this.left] = n; this.nitems ++; } // Insira um número no lado direito do void insertright (longo n) {if (this.right == this.maxSize -1) this.right = -1; this.mydequ [++ this.right] = n; this.nitems ++; } // Remova da esquerda Public Long Removeleft () {long temp = this.mydequ [this.left ++]; if (this.left == this.maxSize) this.left = 0; this.nitems--; retornar temp; } // Remova da direita public Long Removeright () {long temp = this.mydequ [this.right--]; if (this.left ==-1) this.left = this.maxSize-1; this.nitems--; retornar temp; } // retorna true se deque estiver vazio public boolean isEmpty () {return (this.nitems == 0); } // Retornar tamanho do deque public int size () {return this.nitems; }}PS: As filas de loop bidirecional são de grande utilidade. Eles podem ser usados como filas comuns ou como pilhas!
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.