programação de computadores: vetor, matriz, lista, registro

Upload: juliano-bianchini

Post on 02-Mar-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    1/38

    Disciplina: Estrutura de DadosProfessor: Juliano Bianchini

    CEPEG - Centro Politcnico Geraldo WerninghausCurso Tcnico em Informtica

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    2/38

    Pauta

    Introduo

    Estruturas de dados clssicas Pilha Fila

    Registro istas encadeadas

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    3/38

    Introduo

    Estruturas de dados e algoritmos so temas

    fundamentais da ci!ncia da com"utao#sendo $ue so utili%ados nas mais di&ersasreas e com os mais diferentes "ro"'sitos(

    )lgoritmos mani"ulam dados e $uando estes

    dados esto organi%ados *dis"ostos+ de formacoerente caracteri%am uma estrutura dedados,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    4/38

    Estruturas de dados clssicas

    etor *arra.+/

    0 uma estrutura de dados linear e esttica# isto # com"ostas "or um n1mero finito de elementos deum determinado ti"o de dado# dis"osto de formase$2encial(

    / E3,4

    onde4/ E5 o "rimeiro elemento da lista/ En o 1ltimo elemento

    E5 E6 E7 ,,, En5 6 7 ,,, n

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    5/38

    Estruturas de dados clssicas

    8eclarao de &etor no "ascal4

    9&ari&el: : array [

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    6/38

    Estruturas de dados clssicas

    ?atri% *matri3+

    / 0 uma estrutura de dados linear e esttica# tal comoo &etor# "orm @idimensional, Isto # "ara searma%enar e @uscar um elemento# necessrioindicar as "osiAes *linha# coluna+ onde o mesmose encontra4

    / E3,4coluna

    linha

    )55 )56 )57 ,,, )5n

    )65 )66 )67 ,,, )6n

    )m5 )m6 )m7 ,,, )mn

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    7/38

    Estruturas de dados clssicas

    8eclarao de matri% no "ascal4

    / 9&ari&el: : array [

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    8/38

    E"erc#cio prtico

    5, Escre&a um algoritmo $ue arma%ene# no

    m3imo# de% &alores inteiros e $ue "ermita a&isuali%ao do elemento de um dado ;ndice,B algoritmo s' de&e terminar $uando o &alor%ero for informado como ;ndice(

    E34 623220552361

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    9/38

    E"erc#cio prtico

    6, Escre&a um algoritmo $ue arma%ene os

    &alores a@ai3o em uma matri% de 737 e $ue"ossi@ilite mostrar o &alor em uma dada"osio *linha 3 coluna+, B algoritmo s' de&eterminar $uando a $uando for informado %ero

    "ara linha e "ara a coluna *=#=+(E34

    752541

    113060

    2052

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    10/38

    E"erc#cio prtico

    7, Escre&a um algoritmo $ue arma%ene num &etor atde% elementos inteiros, B algoritmo de&e "arar deinserir elementos $uando %ero for informado ou$uando o dcimo elemento for informado, o final#mostrar os n1meros "ares e suas res"ecti&as"osiAes no &etor,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    11/38

    E"erc#cio prtico

    D, Escre&a um algoritmo $ue arma%ene o nome e a datade nascimentos numa matri% de 5=36 *de% linhas eduas colunas+, ) "rimeira coluna de&e guardar osnomes e a segunda as datas, B algoritmo de&e "ararde guardar dados na matri% $uando o a "ala&ra fimfor informada como nome ou $uando o dcimo

    elemento for informado, )o final listar os nomes edatas informadas(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    12/38

    E"erc#cio prtico

    , Escre&a um algoritmo $ue "reencha um &etor# de 6="osiAes# com n1meros aleat'rios entre = e =, o

    final liste os &alores $ue foram "reenchidos em cadauma das 6= "osiAes,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    13/38

    E"erc#cio prtico

    H, Escre&a um algoritmo $ue "reencha uma matri% 3com n1meros aleat'rios entre = e 5==, o final liste

    os &alores $ue foram "reenchidos em cada uma das6 "osiAes,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    14/38

    Pilha

    ista onde os elementos $ue entram "or

    1ltimo# saem "rimeiro *IFB / Last In, FirstOut+(/ E3em"lo4 "ilha de li&ros# "ratos# etc(

    0 im"lementada atra&s do uma &etor( Para im"lement-la so usadas &ari&eis de

    controle4 to"o e tamanho m3imo da "ilha,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    15/38

    Pilha $ Inserir

    E3em"lo de algoritmo "ara a o"erao de inserodeum elemento numa "ilha(

    &ari&eis4/ to"o *;ndice $ue indica a 1ltima "osio ocu"ada+(/ ?) *constante cuJo &alor re"resenta o tamanho do &etor+(/ &alor *elemento inclu;doKretirado+(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    16/38

    Pilha % Inserir &cont.'

    if to"o L ?) then@egin

    Mrite *NPilha esta cheiaON+(endelse@egin Mrite *N8igite o &alor4 N+( readln *&alor+( KK insere na "ilha to"o 4L to"o 5( "ilha

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    17/38

    Pilha % (etirar

    if to"o L = then@egin

    Write *N"ilha &a%iaON+(endelse@egin

    Write *Nalor retirado4 N inttostr*"ilha

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    18/38

    Pilha % E"erc#cio prtico

    5, Escre&a um algoritmo $ue "ermita inserir#

    retirar e consultar os elementos de uma "ilhacom tamanho de 5= "osiAes, ?onte ummenu com as seguintes o"Aes4

    5 / inserir

    6 / retirar7 / listar

    D / sair do "rograma

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    19/38

    )ila

    ista onde os elementos $ue entram "rimeiro#

    saem "rimeiro *FIFB / First In, First Out+(/ E3em"lo4 fila de @anco# su"ermercado# etc, Tam@m im"lementada atra&s de um &etor( Para im"lement-la so usadas &ari&eis de

    controle4 comeo# final e tamanho m3imo dafila,

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    20/38

    )ila $ Insero

    E3em"lo de algoritmo "ara a o"erao de insero deum elemento numa fila(

    &ari&eis4/ co*eo*;ndice $ue indica o "rimeiro elemento da fila -

    iniciali%ada cK %ero+/ final*;ndice $ue indica o 1ltimo elemento da fila - iniciali%ada

    cK %ero+/ *"i*o*&ari&el cuJo &alor re"resenta o tamanho do &etor+/ +alor*elemento a ser inclu;do+/ te*p*uma &ari&el tem"orria+

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    21/38

    )ila % Insero &cont.'

    "rocedimento inserirIICIB

    tem" 4L final 5 se no *tem" : ma3imo+ ento final 4L tem" &etor4L &alor

    se comeco L = ento

    comeco 4L 5 fim se seno escre&a *Fila est cheiaO+ fim se

    FI?(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    22/38

    )ila % (etirar &cont.'

    "rocedimento retirarIQCIB

    se comeo 9: = ento &alor 4L &etor se comeo L final ento comeo 4L = final 4L = seno

    comeo 4L comeo 5 fim se seno

    escre&a *fila &a%iaO+ fim se

    FI?(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    23/38

    )ila % E"erc#cio prtico

    5, Escre&a um algoritmo $ue "ermita inserir#

    retirar e consultar os elementos de uma filacom tamanho de 5= "osiAes, ?onte ummenu com as seguintes o"Aes4

    5 / inserir

    6 / retirar7 / listar

    D / sair do "rograma

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    24/38

    )ila % Pro,le*a

    B fila no andaO

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    25/38

    )ila circular% Insero

    "rocedimento inserirIICIB

    tem" 4L *final mod ma3imo+ 5 se tem" 9: comeco ento final 4L tem" &etor4L &alor

    se comeco L = ento

    comeco 4L 5 fim se seno escre&a *Fila est cheiaO+ fim se

    FI?(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    26/38

    )ila circular % (etirar

    "rocedimento retirarIQCIB se comeo 9: = ento &alor 4L &etor se comeo L final ento comeo 4L = final 4L = seno

    comeo 4L *comeo mod ?a3imo+ 5 fim se seno

    escre&a *fila &a%iaO+ fim se

    FI?(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    27/38

    )ila circular % E"erc#cio prtico

    5, Reescre&a o algoritmo do e3erc;cio anterior

    "ara $ue o mesmo seJa uma fila circular(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    28/38

    (e-istros

    0 um conJunto de dados definido "elo "rogramador(/ E3,4 lista de ani&ersariantes4 nome# dia e m!s do ani&ersrio(

    Im"lementao no PascalKBbject Pascal4/ 8eclarao 4

    t."e 9nome: L record

    9nome &alor 5: 4 9ti"o de dado:

    9nome &alor 6: 4 9ti"o de dado:,,,

    end(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    29/38

    (e-istros &cont.'

    E3,4

    type aniversariante = record

    nome: string (!"#

    dia: integer#mes: integer#

    end# $$ record

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    30/38

    (e-istros &cont.'

    E3em"lo de utili%ao4

    aniversariante% : aniversariante#)tri@uio4

    aniversariante%&nome := nome#

    aniversariante%&dia := dia#

    aniversariante%&mes := mes#

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    31/38

    (e-istro % E"erc#cio prtico

    5, Escre&a um algoritmo $ue "ermita inserir#retirar e consultar uma lista deani&ersariantes *no m3imo 5=+, ?onte ummenu com as seguintes o"Aes4

    5 / inserir

    6 / retirar

    7 / listar

    D / sair do "rograma

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    32/38

    ista encadeada

    ) mem'ria no mais alocada de formase$2encial(

    Cada nodo da lista inde"endente( B relacionamento entre os nodos de&e ser

    e3"l;cito * uma "reocu"ao do

    "rogramador+ ) re"resentao dos nodos feita com

    registros(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    33/38

    ista encadeada &cont.'

    Cada nodo de&e conter# alm dos dados aserem arma%enados# a"ontadores "ara onodo antecessor e sucessor(

    uando a"onta a"enas "ara o sucessor ou"ara o antecessor chamada de lista

    encadeada( uando a"onta "ara o sucessor e "ara o

    antecessor chamada de lista du"lamenteencadeada(

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    34/38

    ista encadeada &cont.'

    Encadeamento sim"les4

    dado dadodado

    Ponteiro de memria

    nodo

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    35/38

    ista encadeada &cont.'

    Encadeamento du"lo4

    dado dadodado

    Ponteiro de memria

    nodo

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    36/38

    Pilha

    Re"resentao de uma "ilha com listaencadeada4

    dado dadodado

    topo Ponteiro de memria

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    37/38

    )ila

    Re"resentao de uma fila com listaencadeada4

    dado dadodado

    comeo

    Ponteiros de memria

    final

  • 7/26/2019 Programao de computadores: Vetor, Matriz, Lista, Registro

    38/38

    Bi,lio-rafia

    PEREIR)# Sil&io do ago, Estruturas de dadosfunda*entais : conceitos e a"licaAes, ed, So

    Paulo4 0rica# 6==5,

    I)S# ?arcos , et al, Estruturas de dados:conceitose tcnicas de im"lementao, Rio de aneiro4 Cam"us#

    5UU7,

    EBSB# Paulo ), S, et al, Estruturas de dados, 6 ed,Rio de aneiro4 Cam"us# 6==6,