Escolar Documentos
Profissional Documentos
Cultura Documentos
A estrutura consiste numa seqncia encadeada de elementos, em geral chamados de ns da lista. A lista representada por um ponteiro para o primeiro elemento (ou n). Do primeiro elemento, podemos alcanar o segundo seguindo o encadeamento, e assim por diante. O ltimo elemento da lista aponta para NULL, sinalizando que no existe um prximo elemento. Para exemplificar a implementao de listas encadeadas, vamos considerar um exemplo simples em que queremos armazenar valores inteiros numa lista encadeada. O n da lista pode ser representado pela estrutura abaixo:
Considerando a definio de Lista, podemos definir as principais funes necessrias para implementarmos uma lista encadeada.
Funo de inicializao
A funo que inicializa uma lista deve criar uma lista vazia, sem nenhum elemento.
Funo de insero
Uma vez criada a lista vazia, podemos inserir novos elementos nela. Para cada elemento inserido na lista, devemos alocar dinamicamente a memria necessria para armazenar o elemento e encade-lo na lista existente. A funo de insero mais simples insere o novo elemento no incio da lista. Devemos notar que o ponteiro que representa a lista deve ter seu valor atualizado, pois a lista deve passar a ser representada pelo ponteiro para o novo primeiro elemento. Por esta razo, a funo de insero recebe como parmetros de entrada a lista onde ser inserido o novo elemento e a informao do novo elemento, e tem como valor de retorno a nova lista, representada pelo ponteiro para o novo elemento.
Esta funo aloca dinamicamente o espao para armazenar o novo n da lista, guarda a informao no novo n e faz este n apontar para (isto , ter como prximo elemento) o elemento que era o primeiro da lista. A funo ento retorna o novo valor que representa a lista, que o ponteiro para o novo primeiro elemento.
Essa funo pode ser re-escrita de forma mais compacta, conforme mostrado abaixo:
Funo de busca
Outra funo til consiste em verificar se um determinado elemento est presente na lista. A funo recebe a informao referente ao elemento que queremos buscar e fornece como valor de retorno o ponteiro do n da lista que representa o elemento. Caso o elemento no seja encontrado na lista, o valor retornado NULL.
Se o elemento a ser inserido estiver no meio da lista, devemos fazer com que o elemento anterior a ele passe a apontar para o novo elemento e o novo elemento apontar para o seguinte.
Programa final
Um outro uso da diretiva #define o de simplesmente definir uma macro. Neste caso usa-se a seguinte forma geral: #define nome_da_macro Neste caso o objetivo no usar a macro no programa (pois ela seria substituda por nada), mas, sim, definir uma macro para ser usada como uma espcie de flag. Isto quer dizer que estamos definindo um valor como sendo "verdadeiro" para depois podermos test-lo.
Criado a List.h
Vimos as 3 diretivas mais importantes no momento para podermos criar nossa biblioteca de funes para listas, existem outras mas no entraremos em detalhes agora s quando for conveniente. Na list.h criamos todos os prottipos das funes q sero usadas nos nossos programas.
Criando a List.cpp
Na List.cpp ou List.c criaremos a funes para serem chamadas na funes principal.
Criando a main.cpp
Na main.cpp ou main.c chamaremos todas as funes que precisarmos para nosso programa nesse arquivo, agora nosso programa ser todo desenvolvido nesse arquivo. Podemos ver q nosso programa fico muito mais limpo e mais fcil de trabalhar, se precisar fazer qualquer alterao na lista ou nos funes da lista essas alteraes sero feitas nos outros arquivos criados acima.
Projeto
timo j tenho meus arquivos prontos mas e agora como fao para compilar e executar meu programa ??? Darei dois exemplos de como compilarem seus programas. Microsoft Visual C++ 2010 Express Visual Studio fornece dois recipientes para ajudar com eficincia a gerenciar os itens que so exigidos por seu esforo de desenvolvimento, tais como referncias, conexes de dados, pastas e arquivos. Esses recipientes so chamados solues e projetos. O Visual Studio fornece Pastas de Soluo para organizar os projetos relacionados em grupos e executar aes nesses grupos de projetos. O Solution Explorer uma interface para exibir e gerenciar esses recipientes e seus itens associados, parte do o ambiente integrado de desenvolvimento (IDE).
Como podemos ver na imagem acima utilizando o Solution Explorer fica mais fcil gerenciar e organizar nosso projeto e na hora de compilar tambm, se os arquivos estiverem nas pastas corretas o prprio programas se encarrega de interliga os arquivos na hora de debugar.
Makefile
O que O makefile um arquivo para configurao de compilao utilizado pelo programa Make, cuja idia simplificar e agilizar a compilao de programas. Forma de utilizao Para utilizar o makefile basta criar o arquivo com o nome makefile no diretrio onde se encontram os arquivos fonte para compilao e executar o programa make no mesmo diretrio.
CC=g++ SRCS= List.c main.c ( pode ser .cpp ) OBJS=$( SRCS:.cpp=.o) TARGET=main ALL: $(TARGET) $(TARGET) : $(OBJS) $(CC) $(OBJS) o $@ .cpp.o: $(CC) -c $< Clean: rm f *.o *.hi*~
No vamos entrar em detalhes sobre o makefile no momento. Apenas substituindo os nomes dos arquivos no SRCS e mandar executar o arquivo make j funcionara. Uma outra oportunidade entraremos mais afundo em detalhes.