SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din
1: //ELAINE CECÍLIA GATTO
2: //30/08/2016
3:
4: program lista_duplamente_encadeada_dinamica;
5: uses wincrt, crt;
6:
7: //DECLARANDO UM NOVO TIPO
8: type
9: apont=^reg;
10: reg=record
11: nome: string[10];
12: proximo:apont;
13: anterior:apont;
14: end;
15:
16: Var
17: opcao : integer;
18: lista, pAux2, pAux1:apont;
19: x : string;
20:
21: //INICIALIZANDO A LISTA
22: procedure inicializaLista();
23: begin
24: lista:=nil;
25: pAux1:=nil;
26: pAux2:=nil;
27: end;
28:
29: //INSERIR NO COMEÇO
30: procedure insereInicio();
31: begin
32: write(' Digite um nome: ');
33: readln(x);
34: if(lista = nil)then
35: begin
36: new(lista); //aloca memória
37: lista^.nome := x;
38: lista^.proximo := nil; //aponta para o fim da lista
39: lista^.anterior := nil; //aponta para o inicio da lista
40: end
41: else
42: begin
43: new(pAux1); //aloca memória
44: pAux1^.nome := x;
45: pAux1^.proximo := lista;
46: lista^.anterior := pAux1;
47: pAux1^.anterior := nil;
48: lista := pAux1;
49: end;
50: writeln(' Elemento inserido com sucesso! ');
51: end;
52:
53: //INSERIR NO FIM
54: procedure insereFim();
55: begin
56: write(' Digite um nome: ');
57: readln(x);
58: if(lista = nil)then
59: begin
60: new(lista); //aloca memória
61: lista^.nome := x;
62: lista^.proximo := nil; //aponta para o fim da lista
63: lista^.anterior := nil; //aponta para o inicio da lista
64: end
65: else
66: begin
1/5
31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din
67: new(pAux2);
68: pAux2 := lista;
69: while(pAux2^.proximo<>nil)do
70: begin
71: pAux2 := pAux2^.proximo;
72: end;
73: //quando chegar ao FIM, sai do WHILE e insere!
74: new(pAux1);
75: pAux1^.nome := x;
76: pAux1^.proximo := nil;
77: pAux1^.anterior := lista;
78: pAux2^.proximo := pAux1;
79: end;
80: writeln(' Elemento inserido com sucesso! ');
81: end;
82:
83: //REMOVE DO COMEÇO
84: function removeInicio():string;
85: begin
86: if(lista = nil)then
87: begin
88: writeln(' LISTA VAZIA ');
89: end
90: else
91: begin
92: if(lista^.proximo = nil)then
93: begin
94: removeInicio := lista^.nome;
95: dispose(lista);
96: end
97: else
98: begin
99: pAux1 := lista; //aux1 aponta para lista
100: lista := pAux1^.proximo; //lista aponta para o próximo de AUX
101: removeInicio := pAux1^.nome; //remove o item
102: lista^.anterior := nil; //anterior da lista aponta para NIL
103: dispose(pAux1); //libera memória
104: end;
105: writeln(' Elemento removido com sucesso! ');
106: end;
107: end;
108:
109: //REMOVE NO FIM
110: function removeFim():string;
111: begin
112: if(lista = nil)then
113: begin
114: writeln(' LISTA VAZIA ');
115: end
116: else
117: begin
118: if(lista^.proximo = nil)then
119: begin
120: removeFim := lista^.nome;
121: dispose(lista);
122: lista := nil;
123: end
124: else
125: begin
126: pAux1 := lista; //AUX1 aponta para lista
127: pAux2 := lista; //AUX2 aponta para lista
128: while(pAux1^.proximo<>nil)do
129: begin
130: pAux1 := pAux1^.proximo; //AUX1 aponta para o proximo de AUX1
131: pAux2 := pAux1^.anterior; //AUX2 aponta pra o anterior de AUX2
132: end;
2/5
31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din
133: removeFim := pAux1^.nome; //remove o item
134: dispose(pAux1); //libera memória de AUX1
135: pAux2^.proximo := nil; //proximo de AUX2 aponta para NIL
136: end;
137: writeln(' Elemento removido com sucesso! ');
138: end;
139: end;
140:
141: //BUSCAR UM ELEMENTO
142: procedure buscar();
143: begin
144: write(' Digite o nome que deseja procurar: ');
145: readln(x);
146: if(lista = nil)then
147: begin
148: writeln(' Lista Vazia');
149: end
150: else
151: begin
152: pAux1 := lista; //AUX1 aponta para lista
153: while ( ( pAux1 <> nil ) and ( pAux1^.nome <> x ) ) do
154: begin
155: pAux1 := pAux1^.proximo; //vai para o próximo elemento
156: end;
157: //quando achar, PÁRA e sai do while, é pq encontrou!
158: writeln(' Nome encontrado: ', pAux1^.nome);
159: end;
160: end;
161:
162: //ATUALIZAR UM ELEMENTO
163: procedure atualizar();
164: begin
165: write(' Digite o nome que deseja procurar: ');
166: readln(x);
167: if(lista = nil)then
168: begin
169: writeln(' Lista Vazia');
170: end
171: else
172: begin
173: pAux1 := lista; //AUX1 aponta para lista
174: while ( ( pAux1 <> nil ) and ( pAux1^.nome <> x ) ) do
175: begin
176: pAux1 := pAux1^.proximo; //vai para o próximo elemento
177: end;
178: //quando achar, PÁRA e sai do while, é pq encontrou!
179: write(' Digite o novo nome: ' );
180: readln(pAux1^.nome);
181: writeln(' Nome atualizado com sucesso!!! ');
182: end;
183: end;
184:
185: //IMPRIMINDO A LISTA
186: procedure imprimir();
187: begin
188: if(lista = nil)then
189: begin
190: writeln('lista vazia');
191: end
192: else
193: begin
194: pAux1:=lista;
195: while(pAux1 <> nil)do //imprimindo lista
196: begin
197: write(' Nome : ');
198: writeln(pAux1^.nome);
3/5
31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din
199: pAux1 := pAux1^.proximo;
200: end; //while
201: end; //if
202: end; //begin
203:
204: //PROGRAMA PRINCIPAL
205: procedure menu;
206: begin
207: repeat
208: writeln(' MENU ');
209: writeln (' 1. Inicializar a Lista ');
210: writeln (' 2. Inserir no inicio da Lista ');
211: writeln (' 3. Inserir no fim da Lista ');
212: writeln (' 4. Inserir em ordem ');
213: writeln (' 5. Remover do inicio da Lista ');
214: writeln (' 6. Remover do fim da Lista ');
215: writeln (' 7. Buscar um elemento na Lista ');
216: writeln (' 8. Atualize um elemento na Lista ');
217: writeln (' 9. Imprimir todos os elementos Lista ');
218: writeln (' 0. SAIR ');
219: writeln('');
220: write(' Digite a opcao desejada: ');
221: readln(opcao);
222: writeln('');
223:
224: Case opcao Of
225: 1 : Begin
226: inicializaLista();
227: writeln('');
228: end;
229: 2 : Begin
230: insereInicio();
231: writeln('');
232: end;
233: 3 : Begin
234: insereFim();
235: writeln('');
236: end;
237: 4 : Begin
238:
239: writeln('');
240: end;
241: 5 : Begin
242: removeInicio();
243: writeln('');
244: end;
245: 6 : Begin
246: removeFim();
247: writeln('');
248: end;
249: 7 : Begin
250: buscar();
251: writeln('');
252: end;
253: 8 : Begin
254: atualizar();
255: writeln('');
256: end;
257: 9 : Begin
258: imprimir();
259: writeln('');
260: end;
261: Else Writeln (' inválido ');
262: End;
263: until opcao = 0;
264: writeln('');
4/5
31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din
265: end;
266:
267: //PROGRAMA PRINCIPAL
268: begin
269: menu();
270: end.
271:
272:
273:
5/5

Mais conteúdo relacionado

Mais procurados

Mais procurados (16)

Lista simplesmente encadeada: Operações de buscar e atualizar
Lista simplesmente encadeada: Operações de buscar e atualizarLista simplesmente encadeada: Operações de buscar e atualizar
Lista simplesmente encadeada: Operações de buscar e atualizar
 
Why functional programming matters
Why functional programming mattersWhy functional programming matters
Why functional programming matters
 
Lista simplesmente encadeada
Lista simplesmente encadeada Lista simplesmente encadeada
Lista simplesmente encadeada
 
Lista Encadeada Simples: Inserção no Final
Lista Encadeada Simples: Inserção no FinalLista Encadeada Simples: Inserção no Final
Lista Encadeada Simples: Inserção no Final
 
Filas
FilasFilas
Filas
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Lista sequencial estatica
Lista sequencial estaticaLista sequencial estatica
Lista sequencial estatica
 
Pilhas encadeadas
Pilhas encadeadasPilhas encadeadas
Pilhas encadeadas
 
Pilhas
PilhasPilhas
Pilhas
 
Filas encadeadas
Filas encadeadasFilas encadeadas
Filas encadeadas
 
Comparando dois números
Comparando dois númerosComparando dois números
Comparando dois números
 
apostila C++
apostila C++apostila C++
apostila C++
 
meetup adopting java8
meetup adopting java8meetup adopting java8
meetup adopting java8
 
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!	TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
TDC2016POA | Trilha Java - Atualizando para Java 8 na prática!
 
[CEFETMG][BD] Aula 3 - SQL Create-Drop-Insert-Update-Delete-Alter
[CEFETMG][BD] Aula 3 - SQL Create-Drop-Insert-Update-Delete-Alter[CEFETMG][BD] Aula 3 - SQL Create-Drop-Insert-Update-Delete-Alter
[CEFETMG][BD] Aula 3 - SQL Create-Drop-Insert-Update-Delete-Alter
 
Spring Capitulo 03
Spring Capitulo 03Spring Capitulo 03
Spring Capitulo 03
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoGentil Eronides
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdfBlendaLima1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
BNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimentoBNCC Geografia.docx objeto de conhecimento
BNCC Geografia.docx objeto de conhecimento
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 

Lista duplamente encadeada dinâmica em Pascal

  • 1. 31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din 1: //ELAINE CECÍLIA GATTO 2: //30/08/2016 3: 4: program lista_duplamente_encadeada_dinamica; 5: uses wincrt, crt; 6: 7: //DECLARANDO UM NOVO TIPO 8: type 9: apont=^reg; 10: reg=record 11: nome: string[10]; 12: proximo:apont; 13: anterior:apont; 14: end; 15: 16: Var 17: opcao : integer; 18: lista, pAux2, pAux1:apont; 19: x : string; 20: 21: //INICIALIZANDO A LISTA 22: procedure inicializaLista(); 23: begin 24: lista:=nil; 25: pAux1:=nil; 26: pAux2:=nil; 27: end; 28: 29: //INSERIR NO COMEÇO 30: procedure insereInicio(); 31: begin 32: write(' Digite um nome: '); 33: readln(x); 34: if(lista = nil)then 35: begin 36: new(lista); //aloca memória 37: lista^.nome := x; 38: lista^.proximo := nil; //aponta para o fim da lista 39: lista^.anterior := nil; //aponta para o inicio da lista 40: end 41: else 42: begin 43: new(pAux1); //aloca memória 44: pAux1^.nome := x; 45: pAux1^.proximo := lista; 46: lista^.anterior := pAux1; 47: pAux1^.anterior := nil; 48: lista := pAux1; 49: end; 50: writeln(' Elemento inserido com sucesso! '); 51: end; 52: 53: //INSERIR NO FIM 54: procedure insereFim(); 55: begin 56: write(' Digite um nome: '); 57: readln(x); 58: if(lista = nil)then 59: begin 60: new(lista); //aloca memória 61: lista^.nome := x; 62: lista^.proximo := nil; //aponta para o fim da lista 63: lista^.anterior := nil; //aponta para o inicio da lista 64: end 65: else 66: begin 1/5
  • 2. 31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din 67: new(pAux2); 68: pAux2 := lista; 69: while(pAux2^.proximo<>nil)do 70: begin 71: pAux2 := pAux2^.proximo; 72: end; 73: //quando chegar ao FIM, sai do WHILE e insere! 74: new(pAux1); 75: pAux1^.nome := x; 76: pAux1^.proximo := nil; 77: pAux1^.anterior := lista; 78: pAux2^.proximo := pAux1; 79: end; 80: writeln(' Elemento inserido com sucesso! '); 81: end; 82: 83: //REMOVE DO COMEÇO 84: function removeInicio():string; 85: begin 86: if(lista = nil)then 87: begin 88: writeln(' LISTA VAZIA '); 89: end 90: else 91: begin 92: if(lista^.proximo = nil)then 93: begin 94: removeInicio := lista^.nome; 95: dispose(lista); 96: end 97: else 98: begin 99: pAux1 := lista; //aux1 aponta para lista 100: lista := pAux1^.proximo; //lista aponta para o próximo de AUX 101: removeInicio := pAux1^.nome; //remove o item 102: lista^.anterior := nil; //anterior da lista aponta para NIL 103: dispose(pAux1); //libera memória 104: end; 105: writeln(' Elemento removido com sucesso! '); 106: end; 107: end; 108: 109: //REMOVE NO FIM 110: function removeFim():string; 111: begin 112: if(lista = nil)then 113: begin 114: writeln(' LISTA VAZIA '); 115: end 116: else 117: begin 118: if(lista^.proximo = nil)then 119: begin 120: removeFim := lista^.nome; 121: dispose(lista); 122: lista := nil; 123: end 124: else 125: begin 126: pAux1 := lista; //AUX1 aponta para lista 127: pAux2 := lista; //AUX2 aponta para lista 128: while(pAux1^.proximo<>nil)do 129: begin 130: pAux1 := pAux1^.proximo; //AUX1 aponta para o proximo de AUX1 131: pAux2 := pAux1^.anterior; //AUX2 aponta pra o anterior de AUX2 132: end; 2/5
  • 3. 31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din 133: removeFim := pAux1^.nome; //remove o item 134: dispose(pAux1); //libera memória de AUX1 135: pAux2^.proximo := nil; //proximo de AUX2 aponta para NIL 136: end; 137: writeln(' Elemento removido com sucesso! '); 138: end; 139: end; 140: 141: //BUSCAR UM ELEMENTO 142: procedure buscar(); 143: begin 144: write(' Digite o nome que deseja procurar: '); 145: readln(x); 146: if(lista = nil)then 147: begin 148: writeln(' Lista Vazia'); 149: end 150: else 151: begin 152: pAux1 := lista; //AUX1 aponta para lista 153: while ( ( pAux1 <> nil ) and ( pAux1^.nome <> x ) ) do 154: begin 155: pAux1 := pAux1^.proximo; //vai para o próximo elemento 156: end; 157: //quando achar, PÁRA e sai do while, é pq encontrou! 158: writeln(' Nome encontrado: ', pAux1^.nome); 159: end; 160: end; 161: 162: //ATUALIZAR UM ELEMENTO 163: procedure atualizar(); 164: begin 165: write(' Digite o nome que deseja procurar: '); 166: readln(x); 167: if(lista = nil)then 168: begin 169: writeln(' Lista Vazia'); 170: end 171: else 172: begin 173: pAux1 := lista; //AUX1 aponta para lista 174: while ( ( pAux1 <> nil ) and ( pAux1^.nome <> x ) ) do 175: begin 176: pAux1 := pAux1^.proximo; //vai para o próximo elemento 177: end; 178: //quando achar, PÁRA e sai do while, é pq encontrou! 179: write(' Digite o novo nome: ' ); 180: readln(pAux1^.nome); 181: writeln(' Nome atualizado com sucesso!!! '); 182: end; 183: end; 184: 185: //IMPRIMINDO A LISTA 186: procedure imprimir(); 187: begin 188: if(lista = nil)then 189: begin 190: writeln('lista vazia'); 191: end 192: else 193: begin 194: pAux1:=lista; 195: while(pAux1 <> nil)do //imprimindo lista 196: begin 197: write(' Nome : '); 198: writeln(pAux1^.nome); 3/5
  • 4. 31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din 199: pAux1 := pAux1^.proximo; 200: end; //while 201: end; //if 202: end; //begin 203: 204: //PROGRAMA PRINCIPAL 205: procedure menu; 206: begin 207: repeat 208: writeln(' MENU '); 209: writeln (' 1. Inicializar a Lista '); 210: writeln (' 2. Inserir no inicio da Lista '); 211: writeln (' 3. Inserir no fim da Lista '); 212: writeln (' 4. Inserir em ordem '); 213: writeln (' 5. Remover do inicio da Lista '); 214: writeln (' 6. Remover do fim da Lista '); 215: writeln (' 7. Buscar um elemento na Lista '); 216: writeln (' 8. Atualize um elemento na Lista '); 217: writeln (' 9. Imprimir todos os elementos Lista '); 218: writeln (' 0. SAIR '); 219: writeln(''); 220: write(' Digite a opcao desejada: '); 221: readln(opcao); 222: writeln(''); 223: 224: Case opcao Of 225: 1 : Begin 226: inicializaLista(); 227: writeln(''); 228: end; 229: 2 : Begin 230: insereInicio(); 231: writeln(''); 232: end; 233: 3 : Begin 234: insereFim(); 235: writeln(''); 236: end; 237: 4 : Begin 238: 239: writeln(''); 240: end; 241: 5 : Begin 242: removeInicio(); 243: writeln(''); 244: end; 245: 6 : Begin 246: removeFim(); 247: writeln(''); 248: end; 249: 7 : Begin 250: buscar(); 251: writeln(''); 252: end; 253: 8 : Begin 254: atualizar(); 255: writeln(''); 256: end; 257: 9 : Begin 258: imprimir(); 259: writeln(''); 260: end; 261: Else Writeln (' inválido '); 262: End; 263: until opcao = 0; 264: writeln(''); 4/5
  • 5. 31/08/2016 15:06:00C:UserselainDocumentsAlgoritmosListaLista Duplamente Encadeada Dinâmicalista_duplamente_encadeada_din 265: end; 266: 267: //PROGRAMA PRINCIPAL 268: begin 269: menu(); 270: end. 271: 272: 273: 5/5