Eu estou tentando rodar os elementos de um vector para a direita mas só consigo trocar o último elemento.
Eu queria que o meu programa fizesse isto:
vector original: 3 2 1
vector rodado para a direita: 1 3 2
public static int[] rotacao(int[] v, int N) {
int[] v_rod = new int[N];
for (int i = N - 1; i >= 0; i--) {
v_rod[N - 1 - i] = v[i];
}
return v_rod;
}
Este método recebe como parâmetro um vector e a sua respectiva capacidade, depois limita-se a rodar os elementos do vector para a direita e retornar o vector rodado.
Conto com vossa ajuda.
Obrigado.
Cumps
Seu exemplo é ruim, isso porque tanto faz, com o seu exemplo, rodar para a direita, ou simplesmente espelhar o vetor.
Use o seguinte exemplo:
Vetor original: 1 2 3 4
Vetor final: 4 1 2 3
getAdicted
Para remover um nó de uma lista, esta lista deve conter, no mínimo, 1 nó, ou seja, n>0.
A remoção do k-ésimo nó de uma lista implica no deslocamento para frente os nós xk+1, xk+2, ..., xn-2, xn-1.
intlstRemover(Lista*l,intk,lstInfo*val){if((k>=0)&&(k<l->n)){/* Não é necessário testar se n > 0, pois* se n = 0, então k < n é falso para k >= 0*/inti;*val=l->itens[k];for(i=k;i<l->n-1;i++){l->itens[i]=l->itens[i+1];}(l->n)--;returnTRUE;}returnFALSE;}
Este Trecho:
for(i=k;i<l->n-1;i++){l->itens[i]=l->itens[i+1];}
Dê uma olhada, bastaria guardar o ultimo elemento da lista.
estava enrolado com o serviço… Esquece o que eu falei, é burocracia, inclusive os exemplos que te mandei estavam em linguagem C, escuta os caras que te deram as respostas.
Obs. Lista circular é aquela em que o ultimo elemento da lista volta para o começo.
abs!
N
noorders
Viva!
douglaskd, usei o sei método e o output pretendido foi o seguinte:
[list]Quantos nº deseja ler?
4
Insira um nº:
4
Insira um nº:
3
Insira um nº:
2
Insira um nº:
1
Elementos do vector invertido:
1
2
3
4
Elementos do vector rodado
1
4
3
2
[/list]