You are on page 1of 14

(VWUXWXUDGH'DGRV

Autoria: Carlos Eduardo Cayres | 4o semestre

Tema 01
Introduo s Estruturas de Dados

7HPD
Introduo s Estruturas de Dados
Autoria: Carlos Eduardo Cayres

Como citar esse documento:


CAYRES, Carlos Eduardo. Estrutura de Dados: Introduo s Estruturas de Dados. Valinhos: Anhanguera Educacional, 2014.

ndice

CONVITELEITURA
Pg. 3

ACOMPANHENAWEB

PORDENTRODOTEMA
Pg. 3

Pg. 19

Pg. 20

Pg. 22

Pg. 22

Pg. 23

Pg. 23

 $QKDQJXHUD (GXFDFLRQDO 3URLELGD D UHSURGXomR QDO RX SDUFLDO SRU TXDOTXHU PHLR GH LPSUHVVmR HP IRUPD LGrQWLFD UHVXPLGD RX PRGLFDGD HP OtQJXD
SRUWXJXHVDRXTXDOTXHURXWURLGLRPD

CONVITELEITURA
Neste tema, voc vai estudar os conceitos bsicos sobre Estrutura de Dados, que o nome dado forma de
organizar dados visando otimizar seu uso. Abordaremos as principais estruturas de dados que podem ser aplicadas na
maioria dos problemas com sucesso.
Estrutura de dados um dos fundamentos da computao empregados em diversas reas para resolver os problemas
mais variados. Para incio de conversa, devemos resgatar o conceito de algoritmos, que so estruturas de programao
utilizadas para manipular dados, facilitando a compreenso da manipulao das estruturas de dados.
As estruturas de dados esto em constante aprimoramento, bem como os algoritmos e as linguagens de programao,
GLFXOWDQGR D HVFROKD GD HVWUXWXUD GH GDGRV LGHDO SDUD D VROXomR GH GHWHUPLQDGR SUREOHPD$LQGD DVVLP DOJXPDV
HVWUXWXUDV FRQVLGHUDGDV FOiVVLFDV VmR VHPSUH XPD ERD RSomR GHQLQGR XP SDGUmR GH HVWUXWXUDV GH GDGRV SDUD D
VROXomRGHGHVDRV

PORDENTRODOTEMA
IIntroduo
t d
s E
Estruturas
t t
d
de D
Dados
d
Computadores so mquinas que manipulam dados e informaes. A computao abrange o estudo da forma
como as informaes so organizadas, manipuladas e utilizadas em um computador.
Ao desenvolver um programa para realizar o processamento de dados, preciso transcrever de forma que o computador
possa compreender e executar tal programa e que o programador tambm compreenda o que escreveu. As linguagens
de programao so cdigos escritos em uma linguagem que o programador compreende e que o computador consegue
interpretar e executar.

PORDENTRODOTEMA
4XDOpRYHUGDGHLURVLJQLFDGRGHinformao? Por um lado, o conceito de informao na cincia da computao
p VHPHOKDQWH DRV FRQFHLWRV GH SRQWR OLQKD H SODQR QD JHRPHWULD WRGRV HOHV VmR WHUPRV LQGHQLGRV VREUH
RV TXDLV SRGHP VHU IHLWDV DUPDo}HV PDV HOHV SRGHP VHU H[SOLFDGRV HP WHUPRV GH FRQFHLWRV HOHPHQWDUHV
(TENENBAUM; LANGSAM; AUGENSTEIN, 1995).

Inteiros Binrios e Decimais


O sistema numrico binrio a base do funcionamento dos computadores. O sistema numrico transforma os
dados em 0 e 1, e s assim podem ser armazenados na memria. Os dgitos binrios so organizados na memria
em byte (oito 0 e 1 agrupados, 8 bits), sendo que cada byte associado a um endereo de memria, o que facilita sua
LGHQWLFDomRHORFDOL]DomR
1RVVLVWHPDVFRPSXWDFLRQDLVRVFDUDFWHUHV OHWUDVQ~PHURVHVtPERORV VmRLGHQWLFDGRVSRUXPFDUDFWHUHQXPpULFR
correspondente na tabela ASCII, sendo esse caractere numrico convertido em binrio para, posteriormente, ser
armazenado na memria.
$VVLPFDGDYDULiYHOpDVVRFLDGDDXPDSRVLomRGHPHPyULDWHQGRFRPRFDUDFWHUtVWLFDXPQRPHHXPWLSRSUHGHQLGRV
Variveis podem armazenar valores diferentes ao longo da execuo de um programa, mas armazenam um nico valor
a cada passo da execuo.
Tipos de Dados
Na maioria dos problemas resolvidos computacionalmente, os tipos de dados, numrico (nmeros inteiros, real
etc.), literal (caractere ou string), esto entre o mais comuns.
Dados do Tipo Numrico
Tipos de dados como nmeros inteiros no possuem casas decimais, podendo ser nmeros positivos ou nmeros
negativos. Para armazenar um dado numrico do tipo inteiro, so necessrios 2 bytes de memria (o espao para
armazenamento pode variar dependendo da linguagem de programao).

PORDENTRODOTEMA
Exemplos de dados numricos inteiros:
1025
-33
78
-25301
Tipo de dados como nmeros reais possuem casas decimais, podendo ser nmeros positivos ou nmeros negativos.
Para armazenar um dado numrico real, so necessrios 4 bytes de memria (o espao para armazenamento pode
variar dependendo da linguagem de programao).
Exemplos de dados numricos reais:
13.35
123.51
-21.08
0.0
Dados do Tipo Literal ou Caractere
So tipos de dados formados por um caractere ou por uma cadeia de caracteres justapostos. Os caracteres podem
ser letras minsculas, letras maisculas, nmeros e caracteres especiais. Para armazenar um dado do tipo caractere na
memria do computador, necessrio um byte por caractere.
Exemplos de dados literais:
teste
1 + 4
exemplos!

PORDENTRODOTEMA
Tipos de Variveis em C
1DOLQJXDJHP&DVYDULiYHLVGHYHPVHUGHFODUDGDVGHSRLVGDGHQLomRGRWLSRGHYDULiYHO2VWLSRVLQW DUPD]HQDU
Q~PHURVLQWHLURV RDW DUPD]HQDUQ~PHURVUHDLV HFKDU DUPD]HQDUXPFDUDFWHUH VmRRVWLSRVGHGDGRVPDLVXWLOL]DGRV
na linguagem C.
3DUDDUPD]HQDUXPDFDGHLDGHFDUDFWHUHQDOLQJXDJHP&GHYHVHXWLOL]DUXPYHWRUGHHOHPHQWRVGRWLSRFKDU
Exemplos de declaraes:
RDWDE
'HFODUDomRGHXPDYDULiYHOFKDPDGDaHRXWUDFKDPDGDb para armazenar um nmero real cada uma.
FKDUVH[R
'HFODUDomRGHXPDYDULiYHOFKDPDGDsexo para armazenar um caractere.
FKDUQRPH>@
'HFODUDomRGHXPDYDULiYHOFKDPDGDnome para armazenar trinta caracteres.
Vetor na Linguagem C
2VYHWRUHVWDPEpPFKDPDGRVGHYDULiYHLVFRPSRVWDVKRPRJrQHDVXQLGLPHQVLRQDLVDSUHVHQWDPFRPRXPDGH
suas caractersticas a capacidade de armazenar vrios valores (dados) com uma nica referncia de nome dado ao
vetor, sendo diferenciados pelo ndice do vetor.
3DUDLGHQWLFDUDVSRVLo}HVGHXPYHWRUQDOLQJXDJHP&pUHFRPHQGiYHOLQLFLDUVHPSUHHP ]HUR HWHUPLQDUFRPR
YDORUTXHLQGLFDURWDPDQKRGRYHWRU TXDQWLGDGHGHSRVLo}HVGLVSRQtYHLVSDUDDUPD]HQDUGDGRV PHQRVXP
Declarao de Vetor em C
1D OLQJXDJHP & RV YHWRUHV SRGHP VHU LGHQWLFDGRV QD GHFODUDomR SRU FROFKHWHV GHSRLV GR QRPH GD YDULiYHO
2 Q~PHUR HQWUH RV FROFKHWHV LQGLFD TXDQWDV SRVLo}HV WHP R YHWRU RX VHMD D TXDQWLGDGH GH GDGRV TXH p FDSD] GH
armazenar.

PORDENTRODOTEMA
Exemplo de vetor:
9HMDPRVDGHFODUDomRGHXPYHWRUFKDPDGRYHWFRPSRVLo}HVGHPHPyULDLQLFLDQGRFRPtQGLFHHLQGRDWp p
LJXDODRWDPDQKRGRYHWRU 2WLSRLQWQDGHFODUDomRGRYHWRULQGLFDTXHSRGHUmRVHUDUPD]HQDGRVWLSRVGHGDGRV
numricos inteiros.
LQWYHW>@
vet

7
0

2
1

5
2

10
3

3
4

21 44 23
5 6 7

4
8

9
9

Atribuindo Valores a um Vetor em C


RDWYHW>@ 

6LJQLFDTXHYHWQDSRVLomRUHFHEHSRUDWULEXLomRRYDORU
Carregando Valores em um Vetor em C
3DUDFDUUHJDUGDGRVHPXPYHWRU OHUGDGRVGRWHFODGR HDWULEXtORVDXPYHWRUSRGHPRVXVDURWUHFKRGHFyGLJRD
VHJXLU
IRU L LL
VFDQI G YHW>L@ 
Imprimindo Valores de um Vetor em C
IRU L LL
SULQWI G?QYHW>L@ 
([HPSORV9HWRUHV3UREOHPDV5HVROYLGRVQD/LQJXDJHP&
Exemplo de um programa em C que carrega um vetor com 10 nmeros inteiros, calcula e mostra dois vetores resultantes
contendo os nmeros positivos e os nmeros negativos, respectivamente. Os vetores resultantes podero ter 10 posies
QRPi[LPRVHQGRTXHQHPWRGDVDVSRVLo}HVSRGHUmRVHUSUHHQFKLGDV

PORDENTRODOTEMA
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWQXP>@SRV>@QHJ>@LFRQWFRQWBQFRQWBS
FRQWBQ 
FRQWBS 
IRU L LL
{
SULQWI 'LJLWHRGYDORUL 
VFDQI G QXP>L@ 
LI QXP>L@! 
{
SRV>FRQWBS@ QXP>L@


FRQWBS
}
else
{

QHJ>FRQWBQ@ QXP>L@


FRQWBQ
}
}

LI FRQWBQ



printf(\nVetor de negativos vazio.\n);


else
{

PORDENTRODOTEMA
SULQWI ?Q9DORUHVQHJDWLYRV?Q 
IRU L LFRQWBQL
SULQWI G?QQHJ>L@ 
}
LI FRQWBS



printf(\nVetor de positivos vazio. \n);


else
{
SULQWI ?Q9DORUHVSRVLWLYRV?Q 
IRU L LFRQWBSL
SULQWI G?QSRV>L@ 
}
system(PAUSE);
}
Exemplo de um programa em C que faz a leitura de um vetor de 10 posies de nmeros inteiros, colocando os nmeros
em ordem crescente durante a leitura.
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWYHW>@LM\DX[
IRU L LL
^SULQWI 'LJLWHXPQ~PHUR 
scanf(%d, &aux);
M 
ZKLOH YHW>M@DX[   ML

PORDENTRODOTEMA


M M

IRU \ L\!M\


YHW>\@ YHW>\@

YHW>M@ DX[
}
printf(\nVetor Ordenado \n);
IRU L LL
SULQWI GYHW>L@ 
system(PAUSE);
}
Exemplo de um programa em C que carrega dois vetores com 5 nmeros inteiros cada. Na sequncia, ordenar os
vetores na ordem crescente. Imprimir um terceiro vetor com 10 posies em ordem crescente, resultante da intercalao
dos dois vetores.
a
a
ordenado
b
b
ordenado
res

5
5

11

11

11

10



PORDENTRODOTEMA
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWD>@E>@UHV>@LM\DX[
IRU L LL
{
SULQWI 'LJLWHRGYDORUGRYHWRUDL 
VFDQI G D>L@ 
}
IRU L LL
{
IRU M MM
{
LI D>M@!D>M@
{
DX[ D>M@


D>M@ D>M@
D>M@ DX[
}
}

}
IRU L LL
{
SULQWI 'LJLWHRGYDORUGRYHWRUEL 
VFDQI G E>L@ `



PORDENTRODOTEMA
IRU L LL
{
IRU M MM
{
LI E>M@!E>M@
{
DX[ E>M@
E>M@ E>M@


E>M@ DX[
}

}
}
M 
IRU L LL
{
UHV>M@ D>L@
j++;
UHV>M@ E>L@
j++;
}
IRU L LL
{
IRU M MM
{
LI UHV>M@!UHV>M@
{



PORDENTRODOTEMA
DX[ UHV>M@


UHV>M@ UHV>M@
UHV>M@ DX[
}

}
}
SULQWI ?Q9HWRUD?Q 
IRU L LL
SULQWI GD>L@ 
SULQWI ?Q9HWRUE?Q 
IRU L LL
SULQWI GE>L@ 
SULQWI ?Q9HWRUUHVXOWDQWH?Q 
IRU L LL
SULQWI GUHV>L@ 
system(PAUSE);
}
Matriz na Linguagem C
0DWUL]HVSRGHPVHUGHQLGDVFRPRXPFRQMXQWRGHYDULiYHLVGHPHVPRWLSRLGHQWLFDGDVSHORPHVPRQRPH3DUD
UHIHUHQFLDUDVSRVLo}HVGHPHPyULDGHXPDPDWUL]pSUHFLVRHVSHFLFDUVXDVSRVLo}HVGHQWURGHVWDHVWUXWXUD
1DOLQJXDJHP&XPDPDWUL]SRGHVHUGHFODUDGDFRPRXQLGLPHQVLRQDO PDLVFRQKHFLGDFRPRYHWRU ELGLPHQVLRQDOH
multidimensional.
(PERUDDVPDWUL]HVPDLVXWLOL]DGDVVHMDPDVELGLPHQVLRQDLV DSHQDVGLPHQV}HV DOJXQVFRPSLODGRUHVSRGHPWUDEDOKDU
com at 12 dimenses.



PORDENTRODOTEMA
Declarando uma Matriz em C
9HMDPRVDGHFODUDomRGHXPDPDWUL]FKDPDGDPDWFRP[SRVLo}HVGHPHPyULDLQGLFDQGRTXHpXPDPDWUL]
FRPOLQKDVHFROXQDVHPTXHRVtQGLFHVUHVSRQViYHLVSRUUHIHUHQFLDUDVSRVLo}HVGDPDWUL]GHYHPVHULQLFLDGRV
HPHLQGRDWpHDWp2WLSRRDWQDGHFODUDomRGDPDWUL]LQGLFDTXHSRGHUmRVHUDUPD]HQDGRVWLSRVGHGDGRV
numricos reais.
RDWPDW>@>@
A exemplo dos vetores, os ndices da matriz devem comear sempre em 0 (zero). Na declarao apresentada, a varivel
FKDPDGDPDWFRQWpPOLQKDV D HFROXQDV D FDSD]HVGHDUPD]HQDUQ~PHURVUHDLVFRPRSRGHVHUREVHUYDGR
DVHJXLU
0

mat 0
1
2
Atribuindo Valores a uma Matriz em C
PDW>@>@ 
2YDORUVHUiDWULEXtGRjSRVLomRUHIHUHQWHjOLQKD OLQKD FROXQD FROXQD GDPDWUL]
0
mat

0
1
2



PORDENTRODOTEMA
Carregando Valores em uma Matriz em C
3DUDFDUUHJDUGDGRVHPXPDPDWUL] OHUGDGRVGRWHFODGR HDWULEXtORVDXPDPDWUL]SRGHPRVXVDURWUHFKRGH
FyGLJRDVHJXLU
IRU L LL
{
IRU M MM 
VFDQI G PDW>L@>M@ 
}
1RH[HPSORDSUHVHQWDGRREVHUYDPRVXPDPDWUL]FRPOLQKDVSRUWDQWRRFRPDQGRIRUPDLVH[WHUQRYDULRXGHD
 SDUDSHUFRUUHUDVOLQKDVGDPDWUL] HRFRPDQGRIRUPDLVLQWHUQRYDULRXGHD SDUDSHUFRUUHUDVFROXQDVGD
matriz).
Imprimindo os Dados de uma Matriz em C
3DUDLPSULPLU PRVWUDU RVYDORUHVGDPDWUL]GRH[HPSORDQWHULRUSRGHPRVXVDURFyGLJRDVHJXLU
IRU L LL
{
IRU M MM
SULQWI G?QPDW>L@>M@ 
}
([HPSORV0DWUL]3UREOHPDV5HVROYLGRVQD/LQJXDJHP&
([HPSOR GH XP SURJUDPD HP & TXH FDUUHJD XPD PDWUL] [ FRP D SRQWXDomR GH  JLQDVWDV HP  DSDUHOKRV
/LVWDURQ~PHURGRJLQDVWD Q~PHURGDOLQKD HDSDUHOKRHPTXHFDGDJLQDVWDREWHYHPHQRUQRWD3DUDQDOL]DUOLVWDU
DTXDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRSULPHLURDSDUHOKRDTXDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRVHJXQGR
DSDUHOKRHDTXDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRWHUFHLURDSDUHOKR



PORDENTRODOTEMA
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
RDWQRWDV>@>@PHQRU
LQWDDDPHQRUBQRWDLM
IRU L LL
{
IRU M MM
{
SULQWI ?Q'LJLWHDGQRWDGRJLQDVWDGML 


VFDQI I QRWDV>L@>M@ 


}
}

D D D 


IRU L LL
{
SULQWI ?Q*LQDVWDQ~PHURGL 
PHQRU QRWDV>L@>@
PHQRUBQRWD 
IRU M MM
{
LI QRWDV>L@>M@PHQRU
{
PHQRU QRWDV>L@>M@


PHQRUBQRWD M



PORDENTRODOTEMA
}
}
SULQWI ?Q$PHQRUQRWDGRJLQDVWDGIRLQRGDSDUHOKRLPHQRUBQRWD 
LI PHQRUBQRWD




D D

LI PHQRUBQRWD




D D

LI PHQRUBQRWD




D D
}

SULQWI ?Q4XDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRDSDUHOKR GD 


SULQWI ?Q4XDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRDSDUHOKR GD 
SULQWI ?Q4XDQWLGDGHGHJLQDVWDVFRPPHQRUQRWDQRDSDUHOKR GD 
system(PAUSE);
}
([HPSORGHXPSURJUDPDHP&TXHFDUUHJDXPDPDWUL][FRPQ~PHURVLQWHLURVHFDOFXODDVRPDGHFDGDOLQKD2
resultado da soma dever ser armazenado em um vetor. Em seguida, o programa dever multiplicar cada elemento da
PDWUL]SHODVRPDGDVXDOLQKDHLPSULPLUDPDWUL]UHVXOWDQWH
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWPDW>@>@VRPD>@LM
SULQWI ?Q'LJLWHRVHOHPHQWRVGDPDWLU]?Q 



PORDENTRODOTEMA
IRU L LL
{
IRU M MM
{
SULQWI ?Q0DW>G@>G@ LM 
VFDQI G PDW>L@>M@ 
}
}
IRU L LL
{
VRPD>L@ 
IRU M MM
 VRPD>L@ VRPD>L@PDW>L@>M@
}
IRU L LL
{
IRU M MM
 PDW>L@>M@ PDW>L@>M@ VRPD>L@
}
printf(\nMatriz resultante);
IRU L LL
{
SULQWI ?Q/LQKDG?QL 
IRU M MM
 SULQWI GPDW>L@>M@ 
}
system(PAUSE);
}



ACOMPANHENAWEB
/((+XHL'LDQD3(5(6)DELDQD))0$57,16$QD3DXOD,QWURGXomRH
&RQFHLWRV7LSRVGH'DGRV(VWUXWXUDVGH'DGRVH7LSRV$EVWUDWRVGH'DGRV
Estruturas de dados o nome dado organizao de dados de forma coerente e racional,
EXVFDQGRPHOKRUDUVHXXVR'HSHQGHQGRGHFRPRXPFRQMXQWRGHGDGRVpRUJDQL]DGRHGHFRPR
as operaes so efetuadas sobre esses dados, possvel solucionar problemas complexos de
forma simples.
'LVSRQtYHOHPKWWSZZZIR]XQLRHVWHEUaIUDWDDHGPDWHULDOBGLGDWLFRBDHGR%LP$XODSGI!$FHVVRHP


+(&.-81,259LOVRQ/yJLFDGH3URJUDPDomR$OJRULWPRVH(VWUXWXUDVGH
'DGRV
Vrios so os modelos de estruturas de dados, sendo alguns bastante clssicos. Ainda assim,
QRYRV PRGHORV VXUJHP FRQVWDQWHPHQWH DFRPSDQKDQGR D HYROXomR GRV DOJRULWPRV H GDV
linguagens de programao.
'LVSRQtYHOHPKWWSGRFHQWHODJHVLIVFHGXEUYLOVRQMXQLRU0DWHULDO'LGDWLFRLS,3BB/RJLFDSGI!. Acesso
HP

/,0$5LFDUGR0DVVD)62$5(66pUJLR&%$XOD([WUD,QWURGXomRD
(VWUXWXUDVGH'DGRV
,QWURGXomR jV (VWUXWXUDV GH 'DGRV /LVWD 3LOKD )LOD H UYRUH FRP LPSOHPHQWDomR GH XP
exemplo de lista em Java.
'LVSRQtYHOHPKWWSVZZZ\RXWXEHFRPZDWFK"Y ),/\]H8Y!$FHVVRHP
7HPSR



AGORAASUAVEZ
Instrues:
$JRUDFKHJRXDVXDYH]GHH[HUFLWDUVHXDSUHQGL]DGR$VHJXLUYRFrHQFRQWUDUiDOJXPDVTXHVW}HVGHP~OWLSOD
HVFROKDHGLVVHUWDWLYDV/HLDFXLGDGRVDPHQWHRVHQXQFLDGRVHDWHQWHVHSDUDRTXHHVWiVHQGRSHGLGR

Questo 1
&RPRLQWXLWRGHYHULFDUDVKDELOLGDGHVGHSURJUDPDomRTXHDGTXLULXDWpDJRUDVROXFLRQHXPSUREOHPDVLPSOHVXWLOL]DQGRRV
UHFXUVRVGHSURJUDPDomRHVWXGDGRV7DLVFRQKHFLPHQWRVVmRH[WUHPDPHQWHQHFHVViULRVQDVHTXrQFLDGRVFRQWH~GRVSRLVWHremos muitos exemplos e exerccios baseados na linguagem C.
3UREOHPDSURSRVWR,PSOHPHQWHXPSURJUDPDHP&TXHOHLDFRQMXQWRVGHYDORUHVRSULPHLURUHSUHVHQWDQGRRQ~PHURGR
DOXQRHRVHJXQGRUHSUHVHQWDQGRVXDPpGLDQDO(QFRQWUHRDOXQRFRPDPDLRUHFRPDPHQRUPpGLDQDO$RQDOGDH[HFXomR
PRVWUHRQ~PHURGRDOXQRFRPDPDLRUPpGLDQDOMXQWRjVXDPpGLDHRQ~PHURGRDOXQRFRPDPHQRUPpGLDQDOMXQWRjVXD
mdia.

Questo 2
1RTXHVHUHIHUHjGHFODUDomRGHYHWRUHVXQLGLPHQVLRQDLVQDOLQJXDJHP&LGHQWLTXHDDOWHUQDWLYDTXHFRUUHVSRQGHjGHFODUDomR
de um vetor de inteiros com espao de armazenamento para 20 nmeros.
a) LQWYHW>@
b) RDWYHW>@
c) FKDUYHW>@
d) LQWYHW>@>@
e) 1HQKXPDGDVDOWHUQDWLYDVpYHUGDGHLUD



AGORAASUAVEZ
Questo 3
Na linguagem C, para um vetor cujo limite mnimo 0 (zero) e o limite mximo 29 (vinte e nove), qual a faixa correspondente
entre o limite mnimo e mximo do vetor?
a) 0.
b) 29.
c) 31.
d) 30.
e) 1HQKXPDGDVDOWHUQDWLYDVpYHUGDGHLUD

Questo 4
Com base na estrutura de programao da linguagem C, crie um programa que faa a leitura de dois vetores de 5 elementos nuPpULFRVFDGDXPHDSUHVHQWHFRPRVDtGDXPYHWRUUHVXOWDQWHGDLQWHUFDODomRGHVVHVGRLVYHWRUHV9HMDRH[HPSORDVHJXLU

vet1

10

vet2

11

vet3

10 11

Questo 5
Com base na estrutura de programao da linguagem C, crie um programa que faa a leitura de um vetor bidimensional (matriz)
2x2 de elementos numricos inteiros. Como sada, mostre uma matriz resultante, que ser a matriz digitada multiplicada pelo
maior valor encontrado na matriz.



FINALIZANDO
Neste tema, voc
N
aprendeu
d conceitos
i
bsicos
b i
sobre
b estruturas de
d dados,
d d
que o nome dado
d d maneira
i como os
GDGRVVmRRUJDQL]DGRVYLVDQGRRWLPL]DUVHXXVR)RUDPDERUGDGDVDVSULQFLSDLVHVWUXWXUDVGHGDGRVTXHJHUDOPHQWH
so utilizadas para a soluo dos mais diversos problemas.
Na computao, a estrutura de dados um dos recursos empregados em diversas reas para resolver os problemas
mais variados, simples ou complexos.
eLPSRUWDQWHREVHUYDUTXHVHXFRQVWDQWHDSULPRUDPHQWRGLFXOWDXPSRXFRDHVFROKDGRWLSRGHHVWUXWXUDGHGDGRV
mais recomendado para determinado problema; ainda assim, algumas estruturas clssicas so sempre uma boa opo.

REFERNCIAS
$6&(1&,2$)*&$0326($9Fundamentos da programao de computadoresHG6mR3DXOR3UHQWLFH+DOO
+(&.-81,259LOVRQLgica de Programao, Algoritmos e Estruturas de Dados'LVSRQtYHOHPKWWSGRFHQWHODJHVLIVF
HGXEUYLOVRQMXQLRU0DWHULDO'LGDWLFRLS,3BB/RJLFDSGI!$FHVVRHP
/((+XHL'LDQD3(5(6)DELDQD))0$57,16$QD3DXODIntroduo e Conceitos7LSRVGH'DGRV(VWUXWXUDVGH'DGRV
H7LSRV$EVWUDWRVGH'DGRV'LVSRQtYHOHPKWWSZZZIR]XQLRHVWHEUaIUDWDDHGPDWHULDOBGLGDWLFRBDHGR%LP$XODSGI!.
$FHVVRHP
/,0$5LFDUGR0DVVD)62$5(66pUJLR&%Aula Extra - Introduo a Estruturas de Dados'LVSRQtYHOHPKWWSVZZZ
\RXWXEHFRPZDWFK"Y ),/\]H8Y!$FHVVRHP
7(1(1%$80$DURQ0/$1*6$0<HGLG\DK$8*(167(,10RVKH-Estruturas de dados usando C6mR3DXOR0DNURQ
%RRNV



GLOSSRIO
Dados:
D
d
so
caractersticas
t ti
observadas
b
d de
d qualquer
l
coisa
i (objeto,
( bj t pessoa, sistema)
i t
) que possam ser coletadas
l t d e arma]HQDGDVFRPRXVHPXVRGHFRPSXWDGRU2VGDGRVSRGHPVHUFROHWDGRVHDQRWDGRVHPFKDVSRUH[HPSOR3RGHP
FRQVLVWLUHPQ~PHURVSDODYUDVLPDJHQVHQWUHRXWURV$VFDUDFWHUtVWLFDVGHXPXVXiULRVmRGDGRVGRPHVPRLGDGH
VH[R &3) HQGHUHoR HWF 1D FRPSXWDomR GDGRV VHOHFLRQDGRV H DUPD]HQDGRV VHP QHQKXP WLSR GH WUDWDPHQWR RX
WUDQVIRUPDomRVmRFODVVLFDGRVFRPRGDGRVEUXWRV
Informao:SRGHVHGHQLULQIRUPDomRFRPRXPFRQMXQWRRUJDQL]DGRGHGDGRVInformao precisa ajuda na tomada
de decises estratgicas e na soluo de problemas. Por outro lado, pode-se dizer que informao um fenmeno que
DWULEXLVLJQLFDGRRXVHQWLGRjVFRLVDV
Estrutura de Dados:QD&RPSXWDomRHVWUXWXUDGHGDGRVpXPDIRUPDHVSHFtFDGHRUJDQL]DomRHDUPD]HQDPHQWR
GHGDGRVSDUDTXHVHMDPXWLOL]DGRVGHIRUPDHFD]$VHVWUXWXUDVGHGDGRVHVHXVDOJRULWPRVVmRPXLWRXWLOL]DGRVQD
&LrQFLDGD&RPSXWDomRHPGLYHUVDViUHDVGRFRQKHFLPHQWRHFRPDVPDLVGLIHUHQWHVQDOLGDGHVQDVROXomRGHSURblemas computacionais.

GABARITO
Questo 1
5HVSRVWD
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{



GABARITO
LQWFRQWQXPPHGLDPDLRUQXPBPDLRUPHQRUQXPBPHQRU
IRU FRQW FRQW FRQW
{
SULQWI ?Q'LJLWHRQ~PHURGRGDOXQRFRQW 
scanf(%d, &num);
SULQWI ?Q'LJLWHDPpGLDGRGDOXQRFRQW 
scanf(%d, &media);
LI FRQW



{
PDLRU PHGLD
QXPBPDLRU QXP
PHQRU PHGLD
QXPBPHQRU QXP
}
else
{
LI PHGLD!PDLRU
{
PDLRU PHGLD
QXPBPDLRU QXP
}
LI PHGLDPHQRU
{
PHQRU PHGLD
QXPBPHQRU QXP
}



GABARITO
}
}
SULQWI ?Q0DLRUPpGLD GpGRDOXQRGHQ~PHURGPDLRUQXPBPDLRU 
SULQWI ?Q0HQRUPpGLD GpGRDOXQRGHQ~PHURGPHQRUQXPBPHQRU 
system(PAUSE);
return 0;
}
Questo 2
5HVSRVWDAlternativa A.
Questo 3
5HVSRVWDAlternativa D.
Consideremos lower o limite mnimo de um vetor e upperROLPLWHPi[LPR2Q~PHURGHHOHPHQWRVQRYHWRUFKDPDGR
faixa, dado por upper - lower + 1. No caso da questo, o limite mnimo 0, o limite mximo 29 e a faixa 30, pois
 30. Ou seja, possvel armazenar 30 elementos no vetor.
Questo 4
5HVSRVWD
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWYHW>@YHW>@YHW>@LM
M 
IRU L LL



GABARITO
{
SULQWI 'LJLWHRGHOHPHQWRGRYHWRU L 
VFDQI G YHW>L@ 
YHW>M@ YHW>L@
j++;
SULQWI 'LJLWHRGHOHPHQWRGRYHWRU L 
VFDQI G YHW>L@ 


YHW>M@ YHW>L@
j++;
}
printf(\nO vetor intercalado );

IRU L LL
SULQWI GYHW>L@ 
system(PAUSE);
}
Questo 5
5HVSRVWD
LQFOXGHLRVWUHDP!
LQFOXGHVWGLRK!
int main()
{
LQWPDW>@>@UHVXOWDGR>@>@LMPDLRU
IRU L LL
{



GABARITO
IRU M MM
{
SULQWI 'LJLWHRHOHPHQWRGDOLQKDGHFROXQDG LM 
VFDQI G PDW>L@>M@ 
}
}
PDLRU PDW>@>@
IRU L LL
{
IRU M MM
{
LI PDW>L@>M@!PDLRU

PDLRU PDW>L@>M@
}
}
IRU L LL
{
IRU M MM

UHVXOWDGR>L@>M@ PDLRU PDW>L@>M@
}
printf(\nImprimindo a matriz resultante\n);
IRU L LL
{
IRU M MM
{
SULQWI 0DW>G@>G@ G?QLMUHVXOWDGR>L@>M@ 
}
}
system(PAUSE);
}



You might also like