Cara, procura no google que ta cheio disso. Mas funcionam ais ou menos assim (tinha feito em C, mas pra Java vai ter mesma lógica)
Pra buscar:
- Cheque se a posição que você quer está mais próxima do fim ou do início;
- O descritor da lista vai ter que ter duas referencias: uma para o ultimo nó, e ouro para o primeiro nó, e cada nó vai ter que ter no mínimo 3 campos: refeferncias para o anterior, referencias para o proximo e referencia para os dados.
- Vá percorrendo, usando uma variavel (tipo um int x) para contar quantas posicóes voce andou, e checa pra ver se a posicao é a que voc"ê quer.
- Achou? no caso de C: memcpy nos dados e retorna sucesso =) hehe. Você pode retornar os dados, senào retorna um fracasso ou lança uma execao ou algo do gênero.
(to no teclado da facul, muito rum de digitar os acentos)
Para inserir, você tem que fazer a busca ate a posicao desejada, e muda as referencias do no anterior e posterior para o novo no inserido.
S’tome cuidado que você vai ter 3 tipos de insercao (talvez 4):
- Insercao no inicio
- Inserao no fim
- insercao no meio
- A lista esta vazia, entao faca com que as referencias inicio e fim do descritor apontem para o novo nó.
É mais ou menos isso. Aqui você pode encontrar material: http://www.joinville.udesc.br/portal/professores/alexandre/
Valeu.