Programação de computadores: Vetor, Matriz, Lista, Registro
-
Upload
juliano-bianchini -
Category
Documents
-
view
219 -
download
0
Transcript of Programação de computadores: Vetor, Matriz, Lista, Registro
-
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,