Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila ED2
Apostila ED2
A7 1B 1M 7 O 17 < c2Q6
a partir da*, considereos A ponteiros #i: in*cio e &: fi$
9
A7 1B 1M 7 O 17 < esAuera
< A7 1B 1M 7 O 17
9
ireita
<
9
1B 1M 7 O 17 A7 esAuera
<
9
1B 1M 7 O 17 A7 esAuera
<
7 1B 1M 7
9
17 A7 esAuera
< O
9
1M 7 1B 17 A7 esAuera
< O 7 1M 9
1B 17 A7 ireita
< O 7
9
1M 1B 17 A7
observe ento Hue ebora os se1entos /1 e /< no esteja ainda ordenados, a chave particionadora se encontra na
sua posio definitivaente correta.
A seHZYncia a se1uir e(ibe apenas o final de cada processo de particionaento. As chaves particionadas so
ostradas e tipo ne)rito, enHuanto os se1entos de apenas u eleento Hue se forare so ostrados e tipo
itlico.
; O 7 M 17 1B 4G 25
; 5 K M 10 4H 4G 5H
i f
f i
i f
i
i
f
f
i f
i f
i f
A7
E8erc9cios si12"es
,rdene, atravs de todos os todos aprendidos, os eleentos: O, 11, N, A, M, 7, 1, F, <, 6, 1B
/eleo direta:
"nsero direta:
0ente #cobosort$:
/hellsort
Ruic5sort
AF
#ro:"e1as 2ro2ostos envo"veno c"assi&ica'(o ,Orena'(o.
,s probleas apresentados a se1uir fora retirados do livro 0ro1rain1 :hallen1es de / /5iena e M 'evilla. /o
probleas de classificao Hue pode utilizar estruturas vistas anteriorente para a sua soluo #pilhas, filas, etc$.
StaLs o& %"a2NacLs ,#i"$as e #anAuecas. 0:C48A 11BNBAC45F
0ilhas e filas so freHuenteente utilizadas e anlise de sinta(e, arHuitetura, sisteas operacionais, e siulao de
eventos. 0ilhas tab so iportantes na teoria de lin1ua1ens forais. )ste problea envolve al1uns destes
conceitos de pilhas e filas aplicados a u todo de virar panHuecas, de acordo co u conjunto de re1ras.
&ada ua pilha de panHuecas, deve!se escrever u pro1raa Hue indica coo a pilha pode ser classificado de odo
Hue a aior panHueca fiHue no fundo e a enor panHueca fiHue no topo. , taanho de ua panHueca dado pelo
di+etro da panHueca. Toas as 2anAuecas e1 u1a 2i"$a tD1 i&erentes iO1etros.
, ordenaento de ua pilha feito por ua seHZYncia de viradas #flips$ nas panHuecas. 4a virada consiste e
inserir ua esptula entre duas panHuecas e ua pilha e lanar #reverter$ todas panHuecas Hue esto acia da
esptula #inverso da sub!pilha$. 4a virada especificada dando a posio da panHueca do fundo da sub!pilha a
ser virada #co relao a toda a pilha$. A panHueca do fundo da pilha te posio 1 e a do topo te posio n.
4a pilha especificada dando o di+etro de cada panHueca na pilha na orde e Hue aparece as panHuecas. 0or
e(eplo, considere os trYs pilhas de panHuecas abai(o #no Hual a panHueca O a ais alta da pilha de panHuecas$:
7 8 2
4 6 5
6 4 7
8 7 4
5 5 6
2 2 8
A pilha V esHuerda pode ser transforada para a pilha no eio via flip #<$. A pilha do eio pode ser transforada
na pilha da direita atravs do coando flip #1$, ou seja < 1 B.
Entraa
A entrada consiste de ua seHZYncia de pilhas de panHuecas. :ada pilha ser coposto de entre 1 e <B panHuecas e
cada panHueca ter u di+etro inteiro entre 1 e 1BB. A entrada terinada por end!of!file. :ada pilha dada coo
ua Jnica linha de entrada co a panHueca do topo aparecendo por prieiro na linha, e a panHueca do fundo
aparecendo por Jltio, sendo Hue todas as panHuecas so separadas por u espao.
Sa9a
0ara cada pilha de panHuecas, a sa*da deve repetir a pilha ori1inal e ua linha, se1uido por al1uas seHZYncias de
&"i2s Hue resulta no ordenaento da pilha de panHuecas sendo Hue a panHueca de aior di+etro fica no fundo e a
panHueca de enor di+etro fica no topo. 0ara cada pilha a seHZYncia de viradas ,&"i2s. deve ser encerrado por u B
#indicando Hue nenhu &"i2 ais necessrio$. 4a vez Hue a pilha est classificada, nenhu &"i2 ais necessrio.
/aple "put
1 2 3 4 5
5 4 3 2 1
5 1 2 3 4
13
1 3
3 1
2 7 6 3
71 4 12 9 6 5 3 21 121 63 2 8 7
/aple ,utput CC )(plicao k no faz parte da sa*da
1 2 3 4 5 //Repetio da entrada
0 //Nenhum flip necessrio
5 4 3 2 1 //Repetio da entrada
1 0 //Flip na 1 panqueca. Aps, nenhum flip necessrio
5 1 2 3 4 //Repetio da entrada
1 2 0 //Flip 1, flip 2, Nenhum mais necessrio.
13
0
1 3
0
3 1
1 0
2 7 6 3
3 1 3 2 0
71 4 12 9 6 5 3 21 121 63 2 8 7
5 1 9 2 4 9 5 10 6 11 7 9 11 12 0
AO
S$e""Sort 0:C48A 11BNBOC4F4H5
S)le fez cada ua das tartaru1as ficar e cia da outra, acuulando todas elas e ua pilha co 6 tartaru1as e,
e se1uida, @ertle subiu. )le sentou e cia da pilha. Rue vista aravilhosaW )le pcde ver bais ua ilhaWT
, rei @ertle pretende reor1anizar seu trono de tartaru1as colocando os nobres e assessores prI(ios ao topo. 4a
Jnica operao est dispon*vel para alterar a orde das tartaru1as na pilha: ua tartaru1a pode sair fora de sua
posio na pilha e subir ao lon1o de outras tartaru1as e sentar!se no topo.
%endo e conta a pilha de tartaru1as e sua disposio ori1inal e ua disposio e(i1ida para esta esa pilha,
seu trabalho consiste e deterinar o n*vel *nio de seHZYncia de operaes Hue transfora #reor1aniza$ a pilha
ori1inal transforando!a na pilha e(i1ida.
Entraa
A prieira linha da entrada consiste de u Jnico inteiro = dando o nJero de casos de teste. :ada teste caso
consiste e u inteiro n indicando o nJero de tartaru1as na pilha. As prI(ias n linhas descreve a orde
ori1inal da pilha de tartaru1as. :ada ua das linhas cont o noe de ua tartaru1a, Hue coea co a tartaru1a
do topo da pilha e se1ue co os noes at a tartaru1a do fundo da pilha. %artaru1as tY noes e(clusivos, cada u
dos Huais ua cadeia de no ais de oitenta caracteres traada a partir de u conjunto de caracteres consistindo de
caracteres alfanuricos, espaos e o ponto#.$ As prI(ias n linhas na entrada do a ordenao pretendida da pilha,
ais ua vez, por noeao das tartaru1as de cia at ebai(o da pilha. :ada caso de teste consiste de e(ataente
An G1 linhas no total. , nJero de tartaru1as #n$ ser i1ual ou inferior a ABB.
Sa9a
0ara cada caso teste, a sa*da consiste de ua seHZYncia de noes de tartaru1a, ua por linha, indicando a orde e
Hue as tartaru1as deve abandonar as suas posies na pilha e subir para o topo. )sta seHZYncia de operaes deve
transforar a pilha de tartaru1as #da pilha ori1inal para a pilha e(i1ida$ e deve ser a soluo o ais curta poss*vel.
/e ais do Hue ua soluo de enor copriento poss*vel, HualHuer das solues pode ser reportadas coo
sa*da. "pria ua linha e branco depois de cada teste.
/aple "put
2
3
Yertle
Duke of Earl
Sir Lancelot
Duke of Earl
Yertle
Sir Lancelot
9
Yertle
Duke of Earl
Sir Lancelot
Elizabeth Windsor
Michael Eisner
Richard M. Nixon
Mr. Rogers
Ford Perfect
Mack
Yertle
Richard M. Nixon
Sir Lancelot
Duke of Earl
Elizabeth Windsor
Michael Eisner
Mr. Rogers
Ford Perfect
Mack
/aple ,utput
Duke of Earl
Sir Lancelot
Richard M. Nixon
Yertle
AM
Lon)est Na2 ,Coc$i"o 1ais "on)o. 0:C48A 11BNBNC4F4M4
:oo vocY deve saber, e(iste professores uito ocupados e co u calendrio cheio durante o dia. /eu professor,
vaos cha!lo 0rofessor 0, u pouco pre1uioso e Huer tirar ua soneca durante o dia, as, coo o seu
calendrio uito ocupado, ele no te uitas chances de fazer isso. )le realente deseja tirar apenas ua soneca
todos os dias. :oo ele vai tirar apenas ua soneca, ele Huer tirar a ais lon1a soneca poss*vel dado o seu
calendrio. )le decidiu escrever u pro1raa para ajud!lo nessa tarefa, as, coo disseos, 0rofessor 0 uito
pre1uioso e portanto, ele decidiu finalente Hue 8,:l deve escrever o pro1raaW
A entraa
A entrada consistir e u nJero arbitrrio de casos de teste, cada caso teste representa u dia. A prieira linha
de cada conjunto cont u nJero inteiro positivo s #no superior a 1BB$, representando o nJero de reunies
pro1raadas durante esse dia. 2as prI(ias s linhas e(iste atividades no se1uinte forato: Time1 time2 atividade
,nde time1 representa o tepo Hue coea a atividade e time2 o tepo Hue terina. %odos os horrios sero no
forato hh:mm, time1 ser sepre estritaente inferior a tieA, eles sero separados por u espao siples e todos
os tepos ser superior ou i1ual a 1B:BB e inferior ou i1ual a 1M:BB. 0ortanto, a resposta deve ser, neste intervalo
tab, ou seja, nenhua soneca pode coear antes das 1B:BB e depois das 1M:BB. A atividade pode ser HualHuer
seHZYncia de caracteres, as ser sepre na esa linha. 0ode!se supor Hue nenhua linha ser ais lon1o do Hue
A77 caracteres, Hue 1B eQ hh eQ 1M e Hue B eQ inutos eFB. Voc no pode assumir, no entanto, que a entrada
ser, em qualquer ordem especfica. 8ocY deve ler a entrada at che1ar ao final do arHuivo.
A sa9a
0ara cada caso teste, vocY deve ipriir a linha a se1uir:
Day #d: the longest nap start at hh:mm and will last for [H hours and] M minutes.
,nde d si1nifica o nJero de caso de teste #a partir de 1$ e hh: o oento e Hue o cochilo pode coear.
0ara e(ibir a durao da soneca, si1a estas re1ras siples:
1. /e a durao total [ for enos de FB inutos , basta ipriir bM inutes.b, onde M Q [.
A. /e a durao total [ e inutos aior ou i1ual a FB, ipriir bU hours and M inutes.b, onde
U Q [ C FB #inteiro da diviso, claro$ e M Q [ od FB.
2o deve!se preocupar co a concord+ncia #ou seja, deve!se ipriir b1 inutesb ou b1 hoursb se for o caso$. A
durao da soneca calculada pela diferena entre o in*cio e o fi do tepo livre, ou seja, se ua atividade terina
Vs 1N:BB e o prI(ios coea Vs 1N:NO, ento te!se #1N:NO!1N:BB$Q NO inutos para u poss*vel cochilo.
/e houver ais de ua aior cochilo co a esa durao, ipria o Hue acontece ais cedo. 0ode!se supor Hue
no haver u dia todo ocupado #ou seja, vocY pode considerar Hue professor no estar ocupado todo o dia e
sepre haver tepo para pelo enos u cochilo$.
/aple "nput
4
10:00 12:00 Lectures
12:00 13:00 Lunch, like always.
13:00 15:00 Boring lectures...
15:30 17:45 Reading
4
10:00 12:00 Lectures
12:00 13:00 Lunch, just lunch.
13:00 15:00 Lectures, lectures... oh, no!
16:45 17:45 Reading (to be or not to be?)
4
10:00 12:00 Lectures, as everyday.
12:00 13:00 Lunch, again!!!
13:00 15:00 Lectures, more lectures!
15:30 17:15 Reading (I love reading, but should I schedule it?)
1
12:00 13:00 I love lunch! Have you ever noticed it? :)
/aple ,utput
Day #1: the longest nap starts at 15:00 and will last for 30 minutes.
Day #2: the longest nap starts at 15:00 and will last for 1 hours and 45 minutes.
Day #3: the longest nap starts at 17:15 and will last for 45 minutes.
Day #4: the longest nap starts at 13:00 and will last for 5 hours and 0 minutes.
A6
Vito>s %a1i"6 0:C48A 11BNB1C4FFI4
, 1an1ster undialente conhecido 8ito &eadstone est indo para 2ova @or5. )le te ua 1rande
fa*lia l e todos eles vive na avenida .aafia. 4a vez Hue ele visita todos os seus parentes uitas vezes, ele
est procurando ua casa perto deles para orar. 8ito pretende iniizar a dist+ncia total a todos eles e chanta1eou
vocY para escrever u pro1raa Hue resolva o seu problea.
Entraa
A entrada constitu*do por vrios casos de teste. A prieira linha cont o nJero de casos de teste. 0ara cada
caso teste ser!lhe! dado o nJero inteiro de parentes r #B er e7BB$, be coo o nJero da rua #inteiros tab$
s1, sA, ... si, ... sr onde vive #B e si e<BBBB$. 2ote!se Hue vrios parentes pode viver no eso nJero de rua
#na esa rua$.
Sa9a
0ara cada caso de teste seu pro1raa deve escrever a *nia soa das dist+ncias entre a posio da casa de 8ito
#Hue dever ser ua posio Itia e relao Vs casas de seus parentes$ e a casa de cada u de seus parentes. A
dist+ncia entre dois nJeros de ruas si e sj dij Q f si!sj f.
/aple "put
2 // 2 casos de teste que vem a seguir:
2 2 4 // 2 parentes, um mora na rua 2 e outro na rua 4
3 2 4 6 // 3 parentes, um mora na rua 2, outro na rua 4 e outro na rua 6
5 6 1 2 4 6 // 5 parentes, um mora na rua 1, outro na rua 2, outro na rua 4 e 2 na rua 6
4 3 3 3 4 // 4 parentes, 3 moram na rua 3 e um mora na rua 4
/aple ,utput
2 // Vito moraria na rua 2 ou 4
4 // Vito moraria na rua 4
9 // Vito moraria na rua 4
1 // Vito moraria na rua 3
0robleas #e(erc*cios$ copleentares #http:CCicpcres.ecs.baDlor.eduConlinejud1eC $:
Bri)e 0:C48A 11BNB<C4FF;K
S$oe1aLer>s #ro:"e1 0:C48A 11BNB7P4FF5J
CDVII 0:C48A 11BNBFP4F4;G
%oot:a"" 0:C48A 11BNBMP4F4MI
<B
J3 Listas "i)aas ou encaeaas Q A"oca'(o Est@tica
)(iste duas foras para inserir al1uns eleentos antendo a orde lI1ica destes eleentos. /o elas:
a$ deslocar todos os deais eleentos
b$ anter u capo 2)[% para cada eleento, indicando Hual o prI(io
X coo se fosse u tre, co u capo "2-, Hue cont ua ou ais inforaes e u capo 2)[%, Hue cont o
endereo se1uinte dentro da estrutura.
"2-, 2)[% ou )., ou ."2=
"nforaes li1aao
8ejaos o e(eplo de u tre. A locootiva li1ada ao prieiro va1o e cada va1o li1ado ao prI(io.
)(iste al1uas inforaes relevantes relacionadas aos va1es, tais coo:
a$ %ipo: #1$ restaurante, #A$ passa1eiros, #<$ car1a
b$ :apacidade: toneladas, pessoas
c$ 'esponsvel: Hue o responsvel pelo va1o
d$ cone(o: Hual o va1o se1uinte]
&esta fora, deveos pensar coo seria a ipleentao de ua estrutura co os nodos li1ados ou encadeados. ,
encadeaento deve considerar vrios aspectos, os Huais so relacionados a se1uir.
2.1 Implementao de listas em vetores
A ipleentao utiliza u vetor #ou atriz$ para o capo "2-, e u vetor para o capo 2)[%.
A orde lI1ica dos eleentos obtida atravs do capo 2)[%, no iportando a localizao f*sica dentro da estrutura.
, capo 2)[% do Jltio eleento i1ual a !4, indicando Hue ele o Jltio eleento.
3asta saber e Hue local est o prieiro eleento da lista para se conhecer todos os deais eleentos.
A lista pode ter u nodo de :ontrole #NC$, Hue seria a locootiva. 2a ipleentao das listas sobre vetores ele
indispensvel.
2.1.1 Estr&t&ra da (ista
&evido ao fato da estrutura ser encadeada, a lista deve ser ipleentada sobre A vetores, e no soente u coo era feito na
alocao seHuencial. :oo e(eplo, podereos utilizar os vetores in&o e ne8t.
Al dos dois vetores # in&o e ne8t $, deveos ter a inforao is2, Hue indicar Hual ser o nodo Hue est dispon*vel para
insero. 4a inforao referente ao 2odo de :abealho tab pode ser utilizada. 0ara facilitar, supoos Hue o 2odo de
:abealho ser sepre o prieiro nodo do vetor.
typedef struct { class lista{
int info [10]; private:
int next [10]; int info[10], next[10];
int disp, primeiro, ultimo; int primeiro, ultimo, disp;
} LISTA; pu)lic:
void CriaPnd (int elem);
LISTA lista; }
2.1.3 ilha dos 4odos 5ispon6veis
/erve para 1uardar os nodos Hue esto dispon*veis. %odos os nodos Hue esto dispon*veis, isto , todas as posies dos vetores
in&o e ne8t Hue aloca a lista e no pertena V esa, fora ua estrutura V parte do tipo pilha, denoinada 02&.
8oltando ao e(eplo do tre, a #ND controla os va1es vazios Hue esto no estacionaento.
<1
, topo desta pilha fica apontado por is2. 4a rotina denoinada :ria02& deve ser criada. , objetivo desta rotina
siplesente encadear os nodos da estrutura. , ne8t do prieiro nodo aponta para o se1undo, Hue aponta para o terceiro,
Hue aponta para o Huarto, e assi sucessivaente, at Hue o Jltio nodo aponta para !1, indicando o trino dos nodos
dispon*veis. Ao final do encadeaento, a estrutura deve ficar coo a apresentada abai(o #supondo O nodos dispon*veis no
total para a lista k de B a F$.
"nfo 2e(t
B
1
1
A
A
<
<
N
N
7
7
F
F
!1
is2QB 2ri1eiroQ !1 u"ti1oR !1
Rotina 2ara a Cria'(o a #ND #0ilha dos 2odos &ispon*veis$:
void lista::criapnd (int elementos) { // cria a pnd
for (int i = 0; i<elementos; i++) {
next[i] = i+1;
}
next[elementos-1] = -1;
disp = 0;
primeiro = ultimo = -1;
}
/e a criao da #ND, fica uito dif*cil saber onde inserir e Huantos nodos ainda esto dispon*veis.
2.1.3 Insero em &ma lista
A insero na lista poder ser feita:
no in*cio da esa
no final da esa
nua deterinada posio n
na posio correta para Hue a lista peranea ordenada #no caso de ua lista ordenada$
"nfo 2e(t
B
1OF !1
1 A
A <
< N
N 7
7 F
F !1
is2Q1 2ri1eiroQ B u"ti1oR B
:oo e(erc*cio, insira os valores 7O, AB1, 1A e 16. #"nsira cada eleento no final da lista$
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
<A
Al1orito para "nsero no &ina" de ua lista #vlido tab para ua fila encadeada$:
void lista::inserefim (int elem) { //insere no final da pnd
info[disp] = elem;
if (primeiro ==-1) {
primeiro = disp;
}
next[ultimo] = disp;
ultimo = disp;
disp = next[disp];
next[ultimo] = -1;
}
Al1orito para "nsero no in9cio de ua lista:
void lista::insereinicio (int x) { //insere no incio da pnd
info[disp] = x;
if (ultimo==-1) {
ultimo = disp;
}
int aux = next[disp];
next[disp]=primeiro;
primeiro = disp;
disp = aux;
}
Inser'(o 1anteno os e"e1entos orenaos3
/upondo Hue se deseje inserir os eleentos antendo a lista ordenada lo1icaente, ua variao da rotina de insero deve
ser criada. A1ora insira de fora visual os eleentos 45, 4< 54I e KJ, de odo Hue ao percorrer a lista, a esa esteja
ordenada por orde alfabtica ascendente.
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
A")orit1o 2ara Inser'(o na Lista 1anteno!a orenaa:
/upondo Hue se deseje inserir os eleentos antendo a lista ordenada lo1icaente, desenvolva o al1orito para tal funo.
void lista::InsereOrdem (int elem) { //insere mantendo ordem ano final da pnd
} 1ESE23453E6 E& 5%746%$86I4
<<
2.1.7 !etirada em &ma lista
0ara siplificar, consideraos Hue o valor a ser retirado da lista seja inforado pelo usurio. 2o caso abai(o, a lista cont
al1uns eleentos. &eonstre 1raficaente, passo!a!passo coo ficaria a retirada dos nodos [, A e 3, e seHuYncia.
"2-, 2)[%
B
A 1
1
3 A
A
[ <
<
N
N
7
7
F
F
!1
is2R < 2ri1eiroR B u"ti1oR <
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
"2-, 2)[%
B
1
A
<
N
7
F
is2R 2ri1eiro R u"ti1oR
Crie ent(o o a")orit1o 2ara retiraa e u1a "ista encaeaa:
void lista::RetiraElem (int elem) { //Retira um elemento especfico da lista
}
<N
K3 Listas "i)aas ou encaeaas Q A"oca'(o inO1ica
A desvanta1e da alocao esttica clara: Huando se utiliza ua estrutura linear, ua Huantidade de
bDtes fica alocada eso se ser utilizada. ,s dois vetores #"2-, e 2)[%$ so utilizados apenas e
parte e a cople(idade auenta e(ponencialente Huando se deseja ipleentar A ou ais listas sobre a
esa rea #vetores$.
A estrutura da lista li1ada din+ica uito siples. )(iste soente A capos #"2-,, 2)[%$, sendo
Hue o capo ne(t u ponteiro para o prI(io eleento da lista.
0odeos visualisar os nodos coo apresentado abai(o
Info !e"t Info !e"t Info !e"t
.ista !!!\ pYra B7&: !!!\ a !!!\ uva 24..
B7): B7): B7&:
, "nfo pode ser u inteiro, u caracter ou ua strin1. 0ara ilustrar considerareos abai(o a criao de
ua lista cujo info ua strin1 de taanho 1B:
typedef struct LISTA {
} lista;
8.1 Incl&so de elementos no in6cio da lista 'ilha+
Ao considerar as estruturas de dados do tipo lista, pilha ou fila, pode!se verificar Hue elas so idYnticas.
/ero sepre copostas por u capo ou ais de inforaes e u capo 2e(t, Hue aponta para o
prI(io nodo.
:o relao V anipulao dos dados, os al1oritos de anipulao das pilhas so os ais siples,
se1uidos pelos al1oritos das filas e listas. 2as listas a cople(idade auenta por possibilitar inseres e
retiradas de HualHuer nodo Hue pertena V estrutura.
:oo os al1oritos da pilha so ais siples, esta ser a prieira estrutura apresentada.
struct PILHA {
} pilha;
struct pilha *topo, *aux;
2o in*cio do pro1raa, antes de HualHuer operao co a lista, a esa deve ser inicializada co 24.,,
indicando Hue est vazia.
topo = aux = NULL;
<7
:onsiderando ua pilha e(istente co al1uns nodos:
Info !e"t Info !e"t Info !e"t
topo m pYra B7&: m a m uva 24..
B7): B7): B7&:
a$ , prieiro passo obter u nodo para inser*!lo na lista:
aux = ne( pilha;
Info !e"t
au( m
b$ , prI(io passo inserir o valor desejado no nodo rec!alocado.
Cin >> info;
Info !e"t
au( m elancia
c$ &epois deve!se fazer o ne(t do nodo inserido apontar para o in*cio da lista.
aux->next = topo;
Info !e"t Info !e"t Info !e"t
topo m pYra m a m uva 24..
Info !e"t B7):
au( m elancia B7):
d$ por Jltio deve!se fazer o ponteiro pilha apontar para onde o ponteiro aux aponta.
topo = aux;
Info !e"t Info !e"t Info !e"t
pYra ))-B m a m uva 24..
topo m Info !e"t B7): ))-B
au( m elancia B7):
'eunindo os passos a,b,c e d, teos:
aux = ne( pilha;
cin >> info;
aux->next = topo;
topo = aux;
a$ :o base na e(plicao acia, faa a rotina para e(cluir u eleento da pilha.
b$ -aa u pro1raa copleto para incluir eleentos na pilha. 2o oento Hue for di1itado u eenter\
para a "nforao interropa a leitura pro1raa e ostre todos os eleentos Hue fora inseridos na pilha
# if (strcmp(aux->info,)==0) break $.
<F
8.3 Incl&so de elementos em &ma fila
2a fila, os dados so inseridos no final da estrutura. A definio da estrutura peranece a esa,
alterando soente o noe da esa.
typedef struct FILA {
} fila ;
fila *frente, *re, *aux;
2o in*cio do pro1raa o fundaental inicializar os < ponteiros para a estrutura:
frente = re = aux = NULL;
a$ , prieiro passo obter u nodo para inser*!lo na lista.
aux = ne( fila;
Info !e"t
au( m 24..
b$ ApIs insere!se o valor desejado no nodo rec!alocado, atualizando o seu capo Ne8t para N/LL:
cin >> info;
aux->next = NULL;
Info !e"t
au( m pYra 24..
B7): B7):
c$ &eve!se encadear e se1uida o nodo inserido #A$ . 0ara ilustrar, considera!se aHui a insero de u
se1undo eleento #3$.
if (re=NULL){ //A fila est vazia
frente = aux;
else { //A fila j contm alguns elementos
re->next = aux;
}
re = aux;
frente m Info !e"t
au( m pYra 24..
re m B7):
B7):
frente m Info !e"t re m Info !e"t
au( m pYra FHDC S 1e"ancia N/LL
B7): B7): B7&: B7&:
:o base nas e(plicaes acia, faa a rotina para e(cluir u eleento da pilha. -aa tab u
pro1raa copleto para incluir C e(cluir eleentos da fila, ostrando!a no final.
A
B
A
B
A
B