·

Cursos Gerais ·

Estrutura de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Recomendado para você

Texto de pré-visualização

CRIANDO UMA LISTA NODO Dado integer PROX endNODO Dado Informação PROX ENDEREÇO DO PRÓXIMO NODO NÓ ou NODO type endNODO NODO end DESENHANDO A ESTRUTURA DO NODO Não podemos colocar PROX NODO erro de compilação record 35 47 03 var VETOR ARRAY13 OF INTEGER VETOR1 VETOR2 VETOR3 3A56894C 35 4A69873A 4A69873A 47 2B69873A 03 NIL 2B69873A p 3A56894C var p endNODO 35 47 03 NIL p var p endNODO 3A56894C 35 4A69873A 4A69873A 47 2B69873A 03 NIL 2B69873A p 3A56894C var p endNODO p 3A56894C 3A56894C 20 NIL NODO record Dado integer PROX endNODO type endNODO NODO end Var p endNODO pDado pPROX p procedure PUSHvar ppilha ob string adiciona elementos na pilha begin pj pj 1 pobjpj ob end LEMBRAMSE DAQUELE COMANDO Var p integer p 5 p é definido na cláusula VAR Nodos são criados dinamicamente pelo comando NEW LISTA ENCADEADA SIMPLES p NIL LISTA VAZIA LISTA ENCADEADA SIMPLES p 3A56894C 3A56894C 20 NIL LISTA ENCADEADA SIMPLES p 3A56894C 3A56894C 20 50 NIL 4A69873A 4A69873A LISTA ENCADEADA SIMPLES p 3A56894C 3A56894C 20 50 2A8793A 4A69873A 07 NIL 2A8793A 4A69873A LISTA ENCADEADA SIMPLES p 3A56894C 3A56894C 20 50 2A8793A 4A69873A 07 NIL 2A8793A p 20 50 07 4A69873A LISTA ENCADEADA Type endNODO NODO NODO record Dado integer PROX endNODO End Var p endNODO Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End ESTE PROGRAMA CRIA UMA LISTA COM DOIS NODOS VAMOS ACOMPANHAR A EXECUÇÃO MEMÓRIA STACK HEAP Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP DEFINIÇÃO DA ESTRUTURA DO NODO NADA MUDA NA MEMÓRIA Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP DEFINIÇÃO DE DOIS PONTEIROS DO TIPO endNODO p q Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP CRIAÇÃO DINÂMICA DO NODO E ENDEREÇO DESSE NODO ARMAZENADO NO PONTEIRO p p q Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP MOVIMENTAÇÃO DO NÚMERO 7 PARA A PRIMEIRA PARTE DO NODO pDado QUE O PONTEIRO p APONTA p q 7 pDado Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP CRIAÇÃO DINÂMICA DO NODO E ENDEREÇO DESSE NODO ARMAZENADO NO PONTEIRO q p q 7 pDado Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP p q 7 pDado qDado 3 MOVIMENTAÇÃO DO NÚMERO 3 PARA A PRIMEIRA PARTE DO NODO qDado QUE O PONTEIRO q APONTA Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP p q 7 pDado pPROX qDado 3 MOVIMENTAÇÃO DO ENDEREÇO CONTIDO NO PONTEIRO q PARA A SEGUNDA PARTE DO NODO QUE p ESTÁ APONTANDO LIGAÇÃO DOS NODOS Program Teste Type endNODO NODO NODO record Dado integer PROX endNODO End Var pq endNODO begin newp pDado 7 newq qDado 3 pProx q qProx nil End MEMÓRIA STACK HEAP p q 7 pDado pPROX qDado 3 DESIGNAÇÃO DO NODO FINAL DA LISTA COM MOVIMENTÇÃO DA CONSTANTE nil nulo PARA A SEGUNDA PARTE DO NODO APONTADO POR q nil qPROX CRIE UMA LISTA ENCADEADA SIMPLES A PARTIR DE NÚMEROS DIGITADOS PELO USUÁRIO QUANDO O USUÁRIO DIGITAR O NÚMERO ZERO IMPRIMA A LISTA ENCADEADA GERADA E ENCERRE O PROGRAMA P NÚMERO LIDO 12 12 NIL P 12 11 NIL 11 33 P 12 11 33 NIL 0 FIM DE PROGRAMA NO PRÓXIMO SLIDE DEMONSTRO UM PROGRAMA QUE CRIA UMA LISTA ENCADEADA SIMPLES A PARTIR DE NÚMEROS DIGITADOS PELO USUÁRIO QUANDO O USUÁRIO DIGITA O NÚMERO ZERO O PROGRAMA LISTA TODOS OS ELEMENTOS CRIADOS NA LISTA ENCADEADA program crialist uses crt type endnodo nodo nodo record info integer prox endnodo end var p q r endnodo num I integer begin clrscr p nil writelnENTRE COM O PRIMEIRO NUMERO readlnnum if num 0 then begin newp pinfo num pprox nil writelnENTRE COM O PROXIMO NUMERO readlnnum if num 0 then begin newq qinfo num qprox nil pprox q writelnENTRE COM O PROXIMO NUMERO readlnnum while num 0 do begin newr rinfo num rprox nil qprox r q r writelnENTRE COM O PROXIMO NUMERO readlnnum end end end if pnil then writelnLISTA VAZIA NAO EXISTEM NODOS else begin I 1 q p while q nil do begin writelnNODO NUMERO I qinfo q qprox iI1 end end readln end VAMOS VER A EXECUÇÃO DESTE PROGRAMA PASSO A PASSO program crialist uses crt type endnodo nodo nodo record info integer prox endnodo end var p q r endnodo num I integer p q r nu m I begin clrscr p nil writelnENTRE COM O PRIMEIRO NUMERO readlnnum nil 12 p q r nu m I nil 12 if num 0 then begin newp pinfo num pprox nil pinfo pprox p 12 nil nnn p q r nu m I nil 12 if num 0 then begin newp pinfo num pprox nil pinfo pprox p 12 nil nnn writelnEntre com o próximo numero readlnnum if num 0 then begin newq qinfo qprox q nnn 11 qinfo num qprox nil 11 nil pprox q nnn writelnEntre com o próximo numero readlnnum 33 p q r nu m I p q r nu m I nil 12 pinfo pprox p 12 nil nnn qinfo qprox q nnn 11 11 nil nnn 33 while num 0 do begin newr rinfo rprox r nnn q r rinfo num rprox nil 33 nil qprox r nnn writelnEntre com o próximo numero readlnnum end 0 p q r nu m I nil 12 pinfo pprox p 12 nil nnn nnn 11 11 nil nnn 33 nnn 33 nil nnn 0 if pnil then writelnLista Vazia não existem nodos else begin I 1 q p while q nil do begin writelnNodo numero I qinfo q qprox II1 end end readln end Nodo numero 1 12 Nodo numero 2 11 Nodo numero 3 33 1 2 3 FIM DE PROGRAMA