Cours ASD Chapitre4

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Chapitre 4 Les structures séquentielles

 

Chapitre 

Les structures
de données
séquentielles

2EMHFWLI
x $SSUHQGUHjGpILQLUDEVWUDLWHPHQWGHVW\SHVGHGRQQpHV

x 6DYRLUGLVWLQJXHUHQWUHXQHUHSUpVHQWDWLRQGHGRQQpHVVpTXHQWLHOOHFRQWLJHHWFKDvQpH

x 6DYRLUGpILQLUOHVGLIIpUHQWHVVWUXFWXUHVGHGRQQpHVVpTXHQWLHOOHVFKDvQpHV

x 'pILQLUGHVVWUXFWXUHVGHGRQQpHVVpTXHQWLHOOHVSRXUODUHSUpVHQWDWLRQGHV3LOHVHWGHV
)LOHV

 7\SHDEVWUDLW

8QW\SHDEVWUDLWHVWXQREMHWTXLGLVSRVHG XQHQVHPEOHG RSpUDWLRQVD\DQWFKDFXQHXQHV\Q


WD[HHWXQHVpPDQWLTXH'HPDQLqUHSOXVIRUPHOOHXQW\SHDEVWUDLWGLVSRVHG¶XQHVLJQDWXUHHW
GHVD[LRPHV

 6LJQDWXUH

8QHVLJQDWXUHFRPSUHQGOHQRPGXW\SHSRXUFHUWDLQVQRPEUHVGDQVXQHQVHPEOHGHYDOHXUV
SDUH[HPSOHHQWLHUUpHOFDUDFWqUHERROpHQHWF

8QHVLJQDWXUHFRPSUHQGDXVVLOHVSURWRW\SHVGHVRSpUDWLRQV&HVSURWRW\SHVSUpFLVHQWjTXHOV
W\SHVDSSDUWLHQQHQWOHVSDUDPqWUHVHWOHVUpVXOWDWVGHFKDTXHRSpUDWLRQ

+7(**$5  
Chapitre 4 Les structures séquentielles
 

'DQVOHFKDSLWUHSUpFpGHQWQRXVDYRQVYXTXHODGpFODUDWLRQG¶XQYHFWHXUQpFHVVLWHGHSUpFL
VHUVDWDLOOHORUVGHVDFUpDWLRQ(QSUDWLTXHOHVDOJRULWKPHVWUDLWDQWFHVYHFWHXUVVRQWGpILQLV
TXHVXUGHVVRXVYHFWHXUVOLPLWpVSDUOHXUVGHX[ERUQHVLQIpULHXUHHWVXSpULHXUH

2QSHXWSDUH[HPSOHGpILQLUXQHVLJQDWXUHSRXUOHW\SHYHFWHXUWHOVTXHOHXUVpOpPHQWVGRLYHQW
rWUHLQLWLDOLVpV

 ([HPSOH  

7\SH‫ݎݑ݁ݐܿ݁ݒ‬

3URWRW\SHV

‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎܿݎݑ݁ݐܿ݁ݒ‬ሺ݅݊‫ݐ‬ሻǢ
݅݊‫ݔܽܯ݈݈݁݅ܽݐݐ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ሻǢ
݅݊‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐݐ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ሻǢ
‫ݎݑ݁ݐܸܿ݁݁ݎ݈݅ݎݑ݁ݐܿ݁ݒ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ǡ ݅݊‫ݐ‬ǡ ݅݊‫ݐ‬ሻǢ 
݅݊‫݂݊ܫ݁݊ݎ݋ܾݐ‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ሻ
݅݊‫݌ݑܵ݁݊ݎ݋ܾݐ‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ሻǢ
ܾ‫ݐ݅݊ܫݐ݈݊݁݉݁ܧ݈݊ܽ݁݋݋‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ǡ ݅݊‫ݐ‬ሻǢ
݈݁݁݉݁݊‫ܿܿܽݐ‬°‫ݏ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ǡ ݅݊‫ݐ‬ሻǢ
‫ݎ݂݁݅݅݀݋݉ݎݑ݁ݐܿ݁ݒ‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ǡ ݈݁݁݉݁݊‫ݐ‬ǡ ݅݊‫ݐ‬ሻǢ
ܾ‫ܸ݁݀݅ݐݏ݈݁݊ܽ݁݋݋‬ሺ‫ݎݑ݁ݐܿ݁ݒ‬ሻǢ

3RXUGRQQHUXQHVLJQLILFDWLRQjFHVRSpUDWLRQVQRXVDOORQVYRLUOHVD[LRPHV

 $[LRPHV

/HVD[LRPHVGpILQLVVHQWWRXWHVOHVSURSULpWpVGHVRSpUDWLRQVGpILQLHVGDQVODVLJQDWXUH

 ([HPSOH  

5DSSHODQWTXHQRXVYRXORQVGpILQLUXQW\SHDEVWUDLWG¶XQVRXVYHFWHXUGRQWWRXVOHVpOpPHQWV
HQWUH OHV GHX[ ERUQHV LQIpULHXUH HWVXSpULHXUHVRLHQWLQLWLDOLVpV 'DQV O¶H[HPSOH VXLYDQW QRXV
pFULYRQVTXHOTXHVD[LRPHVVXUOHVRSpUDWLRQVGHODVLJQDWXUHGXW\SHYHFWHXU

6RLHQW‫ݒ‬YHFWHXU݂݅݊ǡ ‫݌ݑݏ‬ǡ ݅ǡ ݊݉ܽ‫ݔ‬LQW݁pOpPHQW

Préconditions

݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻǢ HVWGpILQLHVLHWVHXOHPHQWVLͲ ൑ ݂݅݊ ൑ •—’ ݁‫ ’—•ݐ‬൑ ‫ ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ


ܽܿܿ°‫ݏ‬ሺ‫ݒ‬ǡ ݅ ሻǢHVWGpILQLHVLHWVHXOHPHQWVLܾ‫݂݊ܫ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻ ൑ ݅ ൑ ܾ‫݌ݑܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻǢ
݉‫ݎ݂݁݅݅݀݋‬ሺ‫ݒ‬ǡ ݁ǡ ݅ ሻHVWGpILQLHVLHWVHXOHPHQWVLܾ‫݂݊ܫ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻ ൑ ݅ ൑ ܾ‫݌ݑܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻǢ

+7(**$5  
Chapitre 4 Les structures séquentielles
 

Axiomes

‫ݔܽܯ݈݈݁݅ܽݐ‬൫ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻ൯ ൌ ݊݉ܽ‫ݔ‬


‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐ‬൫ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻ൯ ൌ ͲǢ
‫ א ݅׊‬ሾͲǤ Ǥ ݊݉ܽ‫ ݔ‬ሿ ฺ ‫ ݐ݅݊ܫݐ݈݊݁݉݁ܧ‬ሺܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻǡ ݅ ሻ ൌ ݂ܽ‫ݔݑ‬
݁‫ܸ݁݀݅ݐݏ‬൫ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻ൯ ൌ ‫݅ܽݎݒ‬Ǣ
ܾ‫݂݊ܫ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬൫ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻ൯ ൌ Ͳ
ܾ‫݌ݑܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬൫ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻ൯ ൌ െͳ
݁‫ܸ݁݀݅ݐݏ‬ሺ‫ݒ‬ሻ ൌ ‫݂݊ܫ݁݊ݎ݋ܾ ฺ ݅ܽݎݒ‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻ ൐ ܾ‫݌ݑܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬ሻ
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ  ฺ ܾ‫݂݊ܫ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬൫݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻ൯ ൌ ݂݅݊
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ  ฺ ܾ‫݌ݑܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬൫݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻ൯ ൌ ‫݌ݑݏ‬
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ 
ฺ ‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐ‬൫݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻ൯ ൌ ሺ‫ ݌ݑݏ‬െ ݂݅݊ሻ ൅ ͳ
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ ݁‫ א ݅ݐ‬ሾ݂݅݊Ǥ Ǥ ‫݌ݑݏ‬ሿ
ฺ ‫ݐ݅݊ܫݐ݈݊݁݉݁ܧ‬ሺ݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻǡ ݅ ሻ ൌ ‫݅ܽݎݒ‬
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ ݁‫ ב ݅ݐ‬ሾ݂݅݊Ǥ Ǥ ‫݌ݑݏ‬ሿ
ฺ ‫ݐ݅݊ܫݐ݈݊݁݉݁ܧ‬ሺ݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻǡ ݅ ሻ ൌ ݂ܽ‫ݔݑ‬
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ ݁‫ א ݅ݐ‬ሾ݂݅݊Ǥ Ǥ ‫݌ݑݏ‬ሿ ฺ ܽܿܿ°‫ݏ‬ሺ݉‫ݎ݂݁݅݅݀݋‬ሺ‫ݒ‬ǡ ݁ǡ ݅ ሻǡ ݅ ሻ ൌ ݁
Ͳ ൑ ݂݅݊ ൑ ‫ ݌ݑݏݐ݁ ݌ݑݏ‬൏ ‫ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻ ݁‫݅ݐ‬ǡ ݆ ‫ א‬ሾ݂݅݊Ǥ Ǥ ‫݌ݑݏ‬ሿ݁‫݅ ് ݆ݐ‬
ฺ ܽܿܿ°‫ ݏ‬ሺ݉‫ݎ݂݁݅݅݀݋‬ሺ‫ݒ‬ǡ ݁ǡ ݅ ሻǡ ݆ሻ ൌ ܽܿܿ°‫ݏ‬ሺ‫ݒ‬ǡ ݆ሻ

'¶DSUqV FHV D[LRPHV RQ SHXW GpGXLUH TX¶XQ YHFWHXU ‫ ݒ‬HVW FUpp j O¶DLGH GH O¶RSpUDWLRQ
ܿ‫ݎݑ݁ݐܸܿ݁ݎ݁݁ݎ‬ሺ݊݉ܽ‫ ݔ‬ሻHWLOHVWFRQVLGpUpYLGHORUVGHVDFUpDWLRQ3RXUXWLOLVHUOHYHFWHXU‫ݒ‬QRXV
GHYURQVGDQVFHFDVOLPLWHUOHVWUDLWHPHQWVTXHVXUXQVRXVYHFWHXU‫ݒ‬ǯLQLWLDOLVpSDUO¶RSpUDWLRQ
݈݅‫ݎݑ݁ݐܸܿ݁݁ݎ‬ሺ‫ݒ‬ǡ ݂݅݊ǡ ‫݌ݑݏ‬ሻ&HWWHGHUQLqUHRSpUDWLRQGpILQLWDXVVLOHVGHX[ERUQHVLQIpULHXUHHWVX
SpULHXUHGXVRXVYHFWHXU‫ݒ‬ǯ

2QFRQVWDWHTXHGDQVOHFDVR‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐ‬ሺ‫ ݒ‬ᇱ ሻ ൏ ‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻDXFXQpOpPHQWHQ


GHKRUV GHV GHX[ ERUQHV ܾ‫݂݊ܫ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬Ԣሻ  HW ܾ‫݌ܵ݁݊ݎ݋‬±‫݁ݎݑ݁݅ݎ‬ሺ‫ݒ‬Ԣሻ QH VHUD DFFHVVLEOH $X
WUHPHQW GLW VL RQ YHXW GpILQLU GHV DOJRULWKPHV TXL WUDLWHQW XQ VRXVYHFWHXU ‫ ¶ݒ‬LO YD \ DYRLU
ሺ‫ ݔܽܯ݈݈݁݅ܽݐ‬ሺ‫ݒ‬ሻȂ ‫݁ݒ݅ݐ݂݂ܿ݁ܧ݈݈݁݅ܽݐ‬ሺ‫ݒ‬Ԣሻ pOpPHQWVQRQXWLOLVDEOHV

(QSUDWLTXHFHWLQFRQYpQLHQWUHYLHQWjODGpFODUDWLRQVWDWLTXHGHYHFWHXUGDQVOHVSURJUDPPHV
LQIRUPDWLTXH3RXUSDLOOHUjFHSUREOqPHRQSURFqGHJpQpUDOHPHQWjO¶XWLOLVDWLRQG¶DXWUHVVWUXF
WXUHVGHGRQQpHVWHOOHVTXHOHVOLVWHVFKDvQpHV

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 'pILQLWLRQIRUPHOOHVGHVOLVWHV

8QHOLVWHOLQpDLUHɉHVWXQHVXLWHILQLHpYHQWXHOOHPHQWYLGHG¶pOpPHQWVUHSpUpVVHORQOHXUUDQJ
GDQVODOLVWHɉ ൌ൏ ‡ଵ ǡ ‡ଶ ǡ Ǥ Ǥ ǡ ‡୬ ൐

/¶RUGUH GHV pOpPHQWV GDQV XQH OLVWH HVW IRQGDPHQWDO ,O IDXW UHPDUTXHU TXH FH Q¶HVW SDV XQ
RUGUHVXUOHVpOpPHQWVPDLVXQRUGUHVXUOHVSODFHVGHVpOpPHQWV&HVSODFHVVRQWWRWDOHPHQW
RUGRQQpHVHWLOH[LVWHXQHIRQFWLRQ‫ݐ݊ܽݒ݅ݑݏ‬WHOOHTXHWRXWHSODFH RXFHOOXOH HVWDFFHVVLEOHHQ
DSSOLTXDQW‫ݐ݊ܽݒ݅ݑݏ‬GHPDQLqUHUpSpWpHjSDUWLUGHODSUHPLqUHFHOOXOHGHODOLVWH3RXUWRXWHFHO
OXOHܿG¶XQHOLVWHߣQRQYLGHRQDGRQF

‫ ݇׌‬൒ Ͳ‫ ܿ݁ݑݍ݈݁ݐ‬ൌ ‫ݐ݊ܽݒ݅ݑݏ‬௞ ሺ‫ݐ‬²‫݁ݐ‬ሺߣሻሻ

2‫ݐ‬²‫݁ݐ‬ሺߣሻLQGLTXHODSUHPLqUHFHOOXOHGHߣ&KDTXHFHOOXOHjXQFRQWHQXTXLHVWXQpOpPHQW

 ([HPSOHG¶XQW\SHDEVWUDLWOLVWH

1RXV GpILQLVVRQV LFL XQH VLJQDWXUH G¶XQ W\SH DEVWUDLW ‫ ݁ݐݏ݅ܮ‬HQ SRUWDQW FRPPH RSpUDWLRQV GH
EDVH‫ݐ‬²‫݁ݐ‬ሺߣሻTXLUHQGODSUHPLqUHFHOOXOHG¶XQHOLVWHO¶RSpUDWLRQ݆ܽ‫ݎ݁ݐݑ݋‬ሺ݁ǡ ɉሻTXLLQVqUHXQpOp
PHQWjODWrWHGHOLVWHHWO¶RSpUDWLRQ‫ݎ݁݉݅ݎ݌݌ݑݏ‬ሺɉሻTXLUHQGODOLVWHDPSXWpHGHVDSUHPLqUHFHO
OXOH

7\SH‫݈݁ݑ݈݈݁ܥ݁ݐݏ݅ܮ‬

3URWRW\SHV

‫ܸ݁݀݅݁ݐݏ݈݅݁ݐݏ݅ܮ‬ሺ ሻǢ
‫ݐ݈݁ݑ݈݈݁ܥ‬²‫݁ݐ‬ሺ‫݁ݐݏ݅ܮ‬ሻǢ
‫ݎ݁ݐݑ݋݆ܽ݁ݐݏ݅ܮ‬ሺ±݈±݉݁݊‫ݐ‬ǡ ‫݁ݐݏ݅ܮ‬ሻǢ
‫ݎ݁݉݅ݎ݌݌ݑݏ݁ݐݏ݅ܮ‬ሺ‫݁ݐݏ݅ܮ‬ሻǢ
±݈±݉݁݊‫ݎ݁݅݉݁ݎ݌ݐ‬ሺ‫݁ݐݏ݅ܮ‬ሻǢ
±݈±݉݁݊‫ݑ݊݁ݐ݊݋ܿݐ‬ሺ‫݈݁ݑ݈݈݁ܥ‬ሻǢ
‫ݐ݊ܽݒ݅ݑݏ݈݁ݑ݈݈݁ܥ‬ሺ‫݈݁ݑ݈݈݁ܥ‬ሻǢ


3UpFRQGLWLRQV

‫ݐ‬²‫݁ݐ‬ሺɉሻHVWGpILQLHVLHWVHXOHPHQWVLɉ ് ݈݅‫ܸ݁݀݅݁ݐݏ‬
‫ݎ݁݉݅ݎ݌݌ݑݏ‬ሺɉሻHVWGpILQLHVLHWVHXOHPHQWVLɉ ് ݈݅‫ܸ݁݀݅݁ݐݏ‬

‫ݎ݁݅݉݁ݎ݌‬ሺɉሻHVWGpILQLHVLHWVHXOHPHQWVLɉ ് ݈݅‫ܸ݁݀݅݁ݐݏ‬


+7(**$5  
Chapitre 4 Les structures séquentielles
 

$[LRPHV

6RLHQWߣ‫݊ݑ݁ݐ݁݁ݐݏ݅ܮ݁݊ݑ‬±݈±݉݁݊‫ݐ‬

ߣ ് ݈݅‫ݎ݁݅݉݁ݎ݌ ฺ ܸ݁݀݅݁ݐݏ‬ሺߣሻ ൌ ܿ‫ݑ݊݁ݐ݊݋‬ሺ‫ݐ‬²‫݁ݐ‬ሺߣሻሻ


‫ݎ݁݉݅ݎ݌݌ݑݏ‬ሺ݆ܽ‫ݎ݁ݐݑ݋‬ሺ݁ǡ ߣሻሻ ൌ ߣ
‫ݎ݁݅݉݁ݎ݌‬ሺ݆ܽ‫ݎ݁ݐݑ݋‬ሺ݁ǡ ߣሻሻ ൌ ݁
ߣ ് ݈݅‫ݐ݊ܽݒ݅ݑݏ ฺ ܸ݁݀݅݁ݐݏ‬ሺ‫ݐ‬²‫݁ݐ‬ሺߣሻሻ ൌ ‫ݐ‬²‫݁ݐ‬ሺ‫ݎ݁݉݅ݎ݌݌ݑݏ‬ሺߣሻሻ
 
'H OD PrPH PDQLqUH RQ SHXW DXVVL GpILQLU G¶DXWUHV RSpUDWLRQV GH EDVHV FRPPH
݆ܽ‫ܫݎ݁ݐݑ݋‬°݉݁ሺɉǡ ‡ǡ ݅ሻܵ‫ܫݎ݁݉݅ݎ݌݌ݑ‬±݉݁ሺߣǡ ݅ሻǡܵ‫݈݉݁ܧݎ݁݉݅ݎ݌݌ݑ‬ሺߣǡ ݁ሻǡܾ‫݂݊ܫ݁݊ݎ݋‬ሺߣሻܾ‫݌ݑܵ݁݊ݎ݋‬ሺߣሻHWF
,OH[LVWHSOXVLHXUVPpWKRGHVSRXULPSOpPHQWHUGHVOLVWHV

/HVSOXVFRXUDQWHVVRQWOHVUHSUpVHQWDWLRQVFRQWLJHVHWOHVUHSUpVHQWDWLRQVFKDLQpHV

 5HSUpVHQWDWLRQFRQWLJHGHVOLVWHV

3RXU FHUWDLQV ODQJDJHVGH SURJUDPPDWLRQ TXLQH GRQQHQWSDV OD SRVVLELOLWp GH ODFUpDWLRQ G\
QDPLTXHGHYDULDEOHVFHWWHUHSUpVHQWDWLRQSHUPHWO¶LPSOpPHQWDWLRQGHVOLVWHVVHORQODGpILQLWLRQ
TXHQRXVDYRQVYXHGDQVOHVVHFWLRQVSUpFpGHQWHV/DUHSUpVHQWDWLRQFRQWLJHHVWEDVpHVXU
O XWLOLVDWLRQ G¶XQ YHFWHXU  /HV pOpPHQWV GH OD OLVWH VRQW VLPSOHPHQW UDQJpV GDQV XQ YHFWHXU j
OHXUSODFHUHVSHFWLYH3RXUFHODQRXVGpILQLVVRQVOHVVWUXFWXUHVGHGRQQpHVVXLYDQWHV
typedefintelement;

typedefstructListe{
 elementvecteur[100];
 intlongueur;
}Liste;

ListeListeVide(Listel){
 l.longueur=0;
 returnl;
}

/DIRQFWLRQ‫ܸ݁݀݅݁ݐݏ݅ܮ‬ሺ‫݈݁ݐݏ݅ܮ‬ሻSHUPHWGHFUpHUXQHOLVWHYLGHሺ݈Ǥ ݈‫ ݎݑ݁ݑ݃݊݋‬ൌ Ͳ 'DQVODVXLWHGH
FHFRXUVQRXVFRQVLGpURQVTXHOHSUHPLHUpOpPHQWGHODOLVWHVHWURXYHjODSRVLWLRQ F HVWj
GLUH݈Ǥ ‫ݎݑ݁ݐܿ݁ݒ‬ሾͳሿHWQRQSDV݈Ǥ ‫ݎݑ݁ݐܿ݁ݒ‬ሾͲሿ 

6RLW‫ܮ‬XQHYDULDEOHGHW\SH‫݁ݐݏ݅ܮ‬GRQFRQSHXWODFUpHFRPPHVXLW
ListeL;
L=ListeVide(L);

/¶DYDQWDJHGHFHWWHUHSUpVHQWDWLRQUpVLGHGDQVOHIDLWTX¶RQSHXWDFFpGHUGLUHFWHPHQWjXQpOp
PHQW GDQV OD OLVWH 3DU H[HPSOH SRXU DFFpGHU DX ݇݅°݉݁ pOpPHQW GH OD OLVWH LO VXIILW G¶XWLOLVHU
O¶H[SUHVVLRQ‫ܮ‬Ǥ ‫ݎݑ݁ݐܿ݁ݒ‬ሾ݇ሿF¶HVWGRQFXQDFFqVGLUHFW

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 $OJRULWKPHGHSDUFRXUVG¶XQHOLVWHFRQWLJH

/DSURFpGXUH݂݂݄ܽ݅ܿ݁‫݁ݐݏ݅ܮ‬ሺ‫݈݁ݐݏ݅ܮ‬ሻIDLWXQSDUFRXUVGDQVODOLVWH݈HQDIILFKDQWOHVYDOHXUVGHV
pOpPHQWV©GHJDXFKHjGURLWHª
voidparcours(Listel){
 inti;
 intn=l.longueur; 
 
 for(i=1;i<=n;i++)
 printf("liste(%d)=%d\n",i,l.vecteur[i]);
}

 2SpUDWLRQG¶LQVHUWLRQGDQVOHVOLVWHVFRQWLJHV

1RXVUDSSHORQVTXHO¶LQVHUWLRQG¶XQpOpPHQW݁GDQVXQHOLVWHYLGHV¶HIIHFWXHjO¶LQGLFHGXYHF
WHXU݈Ǥ ‫ݎݑ݁ݐܿ݁ݒ‬HWODSRVLWLRQG¶XQHFHOOXOHHVWGpILQLHGDQVO¶LQWHUYDOOHܲ ൌ ሾͳǤ Ǥ ݈Ǥ ݈‫ݎݑ݁݃݊݋‬ሿ

3RXULQVpUHUXQpOpPHQW݁GDQVXQHOLVWHFRQWLJH‫ܮ‬RQSURSRVHO¶DOJRULWKPHVXLYDQW
voidajouter(Liste*l,elemente,intpos){
 inti;
 intn=(*l).longueur; 
 if(n<nmaxŞ1&&pos>0&&pos<=n+1){
 for(i=n;i>=pos;iŞŞ)
 (*l).vecteur[i+1]=(*l).vecteur[i];
 (*l).vecteur[pos]=e;
 (*l).longueur=n+1;
 }   
}

 2SpUDWLRQGHVXSSUHVVLRQGDQVOHVOLVWHVFRQWLJHV

8QHSUpFRQGLWLRQGHODVXSSUHVVLRQHVWTXHODOLVWHQHVRLWSDVYLGHHWODSRVLWLRQGHODSODFHj
VXSSULPHUHVWXQHSRVLWLRQYDOLGH
voidsupprimer(Liste*l,intpos){
 inti;
 intn=(*l).longueur; 
 if(pos>0&&pos<=n){
 for(i=pos;i<=nŞ1;i++)
 (*l).vecteur[i]=(*l).vecteur[i+1];
 (*l).longueur=nŞ1;
 }   
}

 ,QFRQYpQLHQWGHUHSUpVHQWDWLRQFRQWLJH

2Q YRLW TXH ODVXSSUHVVLRQ UHVSHFWLYHPHQW O¶LQVHUWLRQ  GHPDQGH DX SLUH FDV݊ െ ͳ UHVSHFWL
YHPHQW ݊ ൅ ͳ  RSpUDWLRQV G¶DIIHFWDWLRQ SRXU OH GpFDODJH GHV pOpPHQWV R ݊ HVW OH QRPEUH

+7(**$5  
Chapitre 4 Les structures séquentielles
 

G¶pOpPHQWVGHODOLVWH2QFRQVWDWHGRQFTXHO¶LQVHUWLRQHWODVXSSUHVVLRQG¶XQpOpPHQWVRQWGHV
RSpUDWLRQVFR€WHXVHVSRXUODPDQLSXODWLRQGHFHWWHVWUXFWXUHGHGRQQpHV

3RXU pYLWHU FHV LQFRQYpQLHQWV QRXV XWLOLVRQV XQH UHSUpVHQWDWLRQ FKDvQpH HQ XWLOLVDQW OHV SRLQ
WHXUV

 5HSUpVHQWDWLRQFKDvQpH

8QH OLVWH FKDvQpH HVW XQH VWUXFWXUH OLQpDLUH GDQV ODTXHOOH OHV FHOOXOHVVRQW pSDUSLOOpHV GDQVOD
PpPRLUHHWUHOLpHVHQWUHHOOHVSDUGHVSRLQWHXUV/DOLVWHHVWDFFHVVLEOHXQLTXHPHQWSDUVDWrWH
F¶HVWjGLUHVRQSUHPLHUpOpPHQW

3RXUOHVOLVWHVFKDvQpHVODVpTXHQFHHVWPLVHHQ°XYUHSDUOHSRLQWHXUFRQWHQXGDQVFKDTXH
FHOOXOHHWTXLLQGLTXHO HPSODFHPHQWGHODFHOOXOHVXLYDQWH/Hpointeur de la cellule suivante
GHODGHUQLqUHFHOOXOHG¶XQHOLVWHQHSRLQWHQXOOHSDUW ܷܰ‫ ܮܮ‬2QDFFqGHjXQpOpPHQWGHODOLVWH
HQSDUFRXUDQWOHVFHOOXOHVJUkFHjOHXUVSRLQWHXUV

 ([HPSOH  


/ #&


#& #& #& #&

6XL#& 6XL#& 6XL#& 6XL18//
 (OP% (OP& (OP' (OP)

3RXU DFFpGHU DX WURLVLqPH pOpPHQW GH OD OLVWHLO IDXW WRXMRXUV GpEXWHUO¶DFFqV j ODOLVWH SDU VD
SUHPLqUHFHOOXOHTXLFRQWLHQWXQpOpPHQWHWOHSRLQWHXUGHODGHX[LqPHFHOOXOH$WUDYHUVOHSRLQ
WHXUGHODFHOOXOHVXLYDQWHRQDFFqGHjODGHX[LqPHFHOOXOHSXLVGHODPrPHPDQLqUHRQDUULYH
jODWURLVLqPHFHOOXOHTXLFRQWLHQWO¶pOpPHQWTXHO¶RQYHXWDFFpGHU

,OHVWLPSRUWDQWGHVLJQDOHUTX¶DYHFFHWWHSUpVHQWDWLRQ

x /HVQ°XGVQHVRQWSDVRUGRQQpVVpTXHQWLHOOHPHQWHQPpPRLUH
x /DOLVWHYLGHHVWUHSUpVHQWpHSDUXQSRLQWHXUܷܰ‫ܮܮ‬

3RXUDMRXWHUVXSSULPHURXGpSODFHUXQpOpPHQWLOVXIILWG DOORXHUG\QDPLTXHPHQWXQHSODFHHQ
PpPRLUHHWGHPHWWUHjMRXUOHVSRLQWHXUVGHVFHOOXOHVVXLYDQWHV

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 9DULDEOHG\QDPLTXH

/HVOLVWHVFKDvQpHVIRQWDSSHOjODQRWLRQGHYDULDEOHG\QDPLTXH&HWWHYDULDEOHHVWGpFODUpHDX
GpEXWGHO H[pFXWLRQG XQSURJUDPPHVDQVrWUHFUpH/RUVTX¶RQYHXWO¶XWLOLVpHRQLQYRTXHXQH
IRQFWLRQVSpFLILTXHSRXUIDLUHXQHDOORFDWLRQG¶HVSDFHPpPRLUHSRXUHOOH&HWWHIRQFWLRQUHQYRLH
O¶DGUHVVHGHO¶HVSDFHFUpHTXLVHUDDVVRFLpHjFHWWHYDULDEOH

8QH IRLV OD YDULDEOH G\QDPLTXH QH VHUD SOXV XWLOLVpH GDQV OH SURJUDPPH RQ SHXW OD GpWUXLUH
F HVWjGLUHTX¶RQOLEqUHO¶HVSDFHPpPRLUHTX HOOHRFFXSDLW

 ([HPSOH  

& #& #&
 6XL18//
 (OP)

 &

/D YDULDEOH GH W\SH SRLQWHXU ‫ ܥ‬SRLQWH VXU O HVSDFH PpPRLUH ‫ ܥ כ‬G DGUHVVH ̷ǣ ‫ܥ‬Ͷ &HWWH FHOOXOH
PpPRLUHFRQWLHQWODYDOHXU ̶‫̶ܨ‬GDQVOHFKDPS ‫݈݉ܧ‬HWODYDOHXUVSpFLDOHܷܰ‫ܮܮ‬GDQVOHFKDPS
ܵ‫&݅ݑ‬HFKDPSVHUYLUDjLQGLTXHUTXHOOHHVWODFHOOXOHVXLYDQWHORUVTXHFHWWHFHOOXOHIHUDSDUWLH
G¶XQH OLVWH /D YDOHXU ܷܰ‫ ܮܮ‬LQGLTXH TX¶LO Q¶\ D SDV XQH FHOOXOH VXLYDQWH ‫ ܥ כ‬HVW O REMHW GRQW
O DGUHVVHHVWUDQJpHGDQV‫ܥ‬

 /LVWHVLPSOHPHQWFKDvQpH

8QHFHOOXOHG XQHOLVWHVLPSOHPHQWFKDvQpHHVWXQHVWUXFWXUHGHGRQQpHVIRUPpHGH

x 8QHGRQQpHRXLQIRUPDWLRQDSSHOpH±݈±݉݁݊‫ݐ‬
x 8QSRLQWHXUQRPPp‫ݐ݊ܽݒ݅ݑݏ‬TXLLQGLTXHO¶DGUHVVHGHODFHOOXOHVXLYDQWHGDQVODOLVWH

1RXVSURSRVRQVOHVVWUXFWXUHVGHGRQQpHVVXLYDQWHVSRXUODUHSUpVHQWDWLRQGHVOLVWHVVLPSOH
PHQWFKDvQpHV
typedefintelement;
typedefstructCellule{
elementcontenu;
structCellule*suivant;}Cellule;

typedefCellule*Liste;
 

8QHOLVWH݈GHW\SH‫݁ݐݏ݅ܮ‬HVWUpIpUHQFpH DFFHVVLEOH SDUO¶DGUHVVHGHODSUHPLqUHFHOOXOH&HWWH
DGUHVVHHVWDIIHFWpHjXQSRLQWHXUGXW\SH‫݈݁ݑ݈݈݁ܥ‬/RUVTXHFHSRLQWHXUHVWܷܰ‫ܮܮ‬RQFRQVLGqUH
TXHODOLVWH݈HVW‫݁݀݅ݒ‬

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 2EVHUYDWHXUVVXUOHVOLVWHVVLPSOHPHQWFKDvQpHV

/DPDQLSXODWLRQGHVOLVWHVFKDvQpHVHQWUDvQHO XWLOLVDWLRQGHVIRQFWLRQVG DOORFDWLRQHWGHOLEpUD


WLRQG\QDPLTXHVGHODPpPRLUH&HVIRQFWLRQVVRQWXWLOLVpHVFRPPHVXLW

x ࢖࢕࢏࢔࢚ࢋ࢛࢘࢖ ൌ ࢓ࢇ࢒࢒࢕ࢉሺ࢏࢔࢚࢚ࢇ࢏࢒࢒ࢋሻ‫݈݈݁݅ܽݐ‬HVWXQSDUDPqWUHTXLLQGLTXHODWDLOOHHQRFWHWV
GHO¶HVSDFHPpPRLUHjUpVHUYHUSDUODIRQFWLRQ݈݈݉ܽ‫ܿ݋‬ሺሻǤ&HWWHIRQFWLRQGRQQHSRXUYD
OHXUj‫݌‬O DGUHVVHGHO¶HVSDFHFUpH2QGLWDXVVLTXHQRXVDOORXRQVXQHVSDFHPpPRLUH
SRXUXQHYDULDEOHVXUOHTXHOSRLQWH‫݌‬

x ࢌ࢘ࢋࢋሺ࢖࢕࢏࢔࢚ࢋ࢛࢘࢖ሻOLEqUHO HVSDFHPpPRLUHVXUOHTXHOLOSRLQWHOHSRLQWHXU‫݌‬

'DQV FH TXL VXLW QRXV GpILQLVVRQV OHV WURLV REVHUYDWHXUV ݁‫ܸ݁݀݅ݐݏ‬ሺሻǡ ݈‫ݎݑ݁ݑ݃݊݋‬ሺሻ݁‫ݏݎݑ݋ܿݎܽ݌ݐ‬ሺሻ
VXUOHVOLVWHVVLPSOHPHQWFKDvQpHV

2EVHUYDWHXUࢋ࢙࢚ࢂ࢏ࢊࢋሺࡸ࢏࢙࢚ࢋࡸሻIRQFWLRQTXLUHQYRLHVLODOLVWHHVWYLGHVLQRQ

intestVide(ListeL){
return(L==NULL);
}

2EVHUYDWHXU ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ሺࡸ࢏࢙࢚ࢋࡸሻ IRQFWLRQ UpFXUVLYH TXL UHQYRLH OH QRPEUH GH FHOOXOHV G¶XQH
OLVWHVLPSOHPHQWFKDvQpH
intlongueur(ListeL){
 if(L==NULL)return0;
elsereturn1+longueur(LŞ>suivant);
}

2EVHUYDWHXU࢖ࢇ࢘ࢉ࢕࢛࢙࢘ࡸ࢏࢙࢚ࢋሺࡸ࢏࢙࢚ࢋࡸሻ(QSDUFRXUDQWXQHOLVWHVLPSOHPHQWFKDvQpHFHWWHSUR
FpGXUHLWpUDWLYHDIILFKHOHVpOpPHQWVFRQWHQXVGDQVOHVFHOOXOHVGHODOLVWH
voidparcoursListe(Listel){
 inti=1;
 while(l!=NULL){
  printf("Liste(%d)=%d\n",i++,lŞ>contenu);
  l=lŞ>suivant;
 }
}


 2SpUDWLRQVVXUODPDQLSXODWLRQGHVOLVWHV

1RXVGpILQLVVRQVDXVVLOHVTXDWUHRSpUDWLRQV݅݊‫݁ݐ݁ܶ݊ܧݎ݁ݎ݁ݏ‬ǡ ݆ܽ‫ݎ݁ݐݑ݋‬ሺ ሻǡ ݅݁݉݁ሺሻǡ ݁‫ݎ݁݉݅ݎ݌ݑݏݐ‬ሺሻ


SRXUODPDQLSXODWLRQGHVOLVWHVVLPSOHPHQWFKDvQpHV

2SpUDWLRQ࢏࢔࢙ࢋ࢘ࢋ࢘ࡱ࢔ࢀࢋ࢚ࢋሺࡸ࢏࢙࢚ࢋ ‫࢒ כ‬ǡ ࢋ࢒ࢋ࢓ࢋ࢔࢚ࢋሻSURFpGXUHTXLSHUPHWGHFUpHUXQHFHOOXOH


FRQWHQDQWO¶pOpPHQW݁/¶LQVHUWLRQDXUDOLHXDXGpEXWGHODOLVWH

+7(**$5  
Chapitre 4 Les structures séquentielles
 

voidinsererEnTete(Liste*l,elemente){
 Cellule*c;
 c=malloc(sizeof(Cellule));

 cŞ>contenu=e;
 cŞ>suivant=*l;
 *l=c;
}


2SpUDWLRQࢇ࢐࢕࢛࢚ࢋ࢘ሺࡸ࢏࢙࢚ࢋ ‫࢒ כ‬ǡ ࢋ࢒ࢋ࢓ࢋ࢔࢚ࢋǡ ࢏࢔࢚࢖࢕࢙ሻIRQFWLRQTXLSHUPHWODFUpDWLRQG\QDPLTXH
G¶XQHFHOOXOHFRQWHQDQWO¶pOpPHQW݁/DIRQFWLRQUpDOLVHODUHFUpDWLRQHWO¶LQVHUWLRQG¶XQHFHOOXOH
VDXIVLODSRVLWLRQHVWYDOLGHGDQVFHFDVHOOHUHQYRLHVLQRQHOOHUHYRLH
intajouter(Liste*l,elemente,intpos){
Cellule*p;
Cellule*n;
if(pos<1||pos>longueur(*l)+1){ printf("positioninvalide!");
return0;}

if(pos==1){insererEnTete(l,e);
return1;}

p=*l;
inti=1;
while(i<posŞ1){
p=pŞ>suivant;
i++;}
n=malloc(sizeof(Cellule));
nŞ>contenu=e;
nŞ>suivant=pŞ>suivant;
pŞ>suivant=n;

return1;
}

2SpUDWLRQ ࢏°࢓ࢋሺࡸ࢏࢙࢚ࢋ ‫࢒ כ‬ǡ ࢏࢔࢚࢖࢕࢙ሻ VL ‫ ݏ݋݌‬HVW XQH SRVLWLRQ YDOLGH OD IRQFWLRQ ݅°݉݁ UHQYRLH
O¶DGUHVVHGHODFHOOXOHTXLVHWURXYHjFHWWHSRVLWLRQVLQRQHOOHUHYRLHܷܰ‫ܮܮ‬
Cellule*ieme(Listel,intpos){
if(pos<1||pos>longueur(l))returnNULL;

inti=1;
while(i<pos){
i=i+1;
l=lŞ>suivant;
}

returnl;
 }


2SpUDWLRQ࢙࢛࢖࢖࢘࢏࢓ࢋ࢘ሺࡸ࢏࢙࢚ࢋ ‫࢒ כ‬ǡ ࢏࢔࢚࢖࢕࢙ሻ6L‫ݏ݋݌‬HVWXQHSRVLWLRQYDOLGHFHWWHIRQFWLRQVXS
SULPHODFHOOXOHTXLVHWURXYHjODSRVLWLRQ‫ݏ݋݌‬HWHOOHUHQYRLHVLQRQ

intsupprimer(Liste*l,intpos){
 Cellule*place;
+7(**$5  
Chapitre 4 Les structures séquentielles
 

 inti;
 if(*l==NULL){printf("ListeVide\n");return0;}
 if(pos<1||pos>longueur(*l)){printf("positioninvalide!\n");return0;}
 if(pos==1){ place=*l;
   *l=(*l)Ş>suivant;
   free(place);
   return1;}
 place=*l;
 for(i=1;i<posŞ1;i++)
   place=placeŞ>suivant;
 Cellule*temp=placeŞ>suivant;
 placeŞ>suivant=placeŞ>suivantŞ>suivant;
 free(temp);
 return1;
}
(QDQDO\VDQWOHVGHX[IRQFWLRQ݆ܽ‫ݎ݁ݐݑ݋‬ሺሻHW‫ݎ݁݉݅ݎ݌݌ݑݏ‬ሺሻRQUHPDUTXHTXHFHVGHX[IRQFWLRQV
IRQWXQDSSHOjODIRQFWLRQ݈‫ݎݑ݁ݑ݃݊݋‬ሺሻTXLSRVVqGHXQHFRPSOH[LWpܱሺ݊ሻ2QSHXWGpPLQHXUOD
FRPSOH[LWp GHV IRQFWLRQV  ݆ܽ‫ݎ݁ݐݑ݋‬HW ‫ ݎ݁݉݅ݎ݌݌ݑݏ‬VL RQ WURXYH G¶DXWUHV YDULDQWHV GH FHV GHX[
IRQFWLRQVVDQVIDLUHOHFDOFXOGHODORQJXHXUGHODOLVWH YRLUO¶H[HUFLFH 

 $XWUHVYDULDQWHVGHOLVWHVVLPSOHPHQWFKDvQpHV

'DQVODVWUXFWXUHGHODOLVWHSURSRVpHSUpFpGHPPHQWO¶DFFqVjODGHUQLqUHFHOOXOHQHSHXWrWUH
V¶HIIHFWXHUVDXIVLRQIDLWXQSDUFRXUVFRPSOHWGHVHVFHOOXOHV&HTX¶HVWYUDLPHQWWUqVFRXWHX[
GDQVOHFDVRO RQVRXKDLWHSDUH[HPSOHRSpUHUVXUODILQGHODOLVWH O¶LQVHUWLRQRXODVXSSUHV
VLRQ GX GHUQLHU pOpPHQW  'RQF LOVHUD SOXV SUDWLTXH G¶XWLOLVHU G¶DXWUHV W\SHV GHOLVWHV VLPSOH
PHQWFKDvQpHVWHOOHVTXHOHVOLVWHVDYHFOHFRXSOH WrWHHWTXHXH OLVWHVFLUFXODLUHVHWF

 /LVWHVLPSOHPHQWFKDvQpHDYHFEORF WrWHTXHXHORQJXHXU 

,OHVWSDUIRLVSUDWLTXHGHGpILQLUXQHOLVWHQRQSDVXQLTXHPHQWSDUVDWrWHPDLVSDUXQEORFFRQ
WHQDQWSDUH[HPSOHODWrWHODTXHXHHWPrPHODORQJXHXUGHODOLVWH


7rWH#& #& #& #& #&
 /RQJXHXU 
6XL#& 6XL#& 6XL#& 6XL18//
4XHXH#&
(OP% (OP& (OP' (OP)


/HVVWUXFWXUHVGHGRQQpHVSHUPHWWDQWGHGpILQLUFHW\SHGHOLVWHVRQWGRQQpHVFRPPHVXLW
typedefstructCellule{
elementcontenu;
structCellule*suivant;}Cellule;

typedefstructListeTQ{
Cellule*Tete;
Cellule*Queue;
  intlongueur;}ListeTQ;

+7(**$5  
Chapitre 4 Les structures séquentielles
 

6RLW݈XQHYDULDEOHGHW\SH‫ܳܶ݁ݐݏ݅ܮ‬HW‫ݏ݋݌‬XQHQWLHUO¶RSpUDWLRQG¶LQVHUWLRQYDGRQFPRGLILHUOHV
FKDPSVGHODVWUXFWXUH݈ ܶ݁‫݁ݑ݁ݑܳ݁ݐ‬HW݈‫ ݎݑ݁ݑ݃݊݋‬VHORQOHVFDVUpSHUWRULpVGDQVOHWDEOHDXFL
GHVVRXV

&DV 7rWHSRLQWHVXU 4XHXHSRLQWHVXU /RQJXHXU


ܲ‫ ݏ݋‬ൌ ͳƬ݈ ൌ ݈݅‫ܸ݁݀݅݁ݐݏ‬ 1RXYHOOHFHOOXOH 1RXYHOOHFHOOXOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ ൅ ൅

ܲ‫ ݏ݋‬ൌ ͳƬ ݈ ് ݈݅‫ܸ݁݀݅݁ݐݏ‬ 1RXYHOOHFHOOXOH ,QFKDQJHDEOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ ൅ ൅

ܲ‫ ݏ݋‬ൌ ݈Ǥ ݈‫ ݎݑ݁ݑ݃݊݋‬൅ ͳƬ݈ ് ݈݅‫ܸ݁݀݅݁ݐݏ‬ ,QFKDQJHDEOH 1RXYHOOHFHOOXOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ ൅ ൅

ͳ ൏ ‫ ݏ݋݌‬൑ ݈Ǥ ݈‫ݎݑ݁ݑ݃݊݋‬ ,QFKDQJHDEOH ,QFKDQJHDEOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ ൅ ൅

ͳ ൐ ‫ ݏ݋݌ݑ݋ݏ݋݌‬൐ ݈Ǥ ݈‫ ݎݑ݁ݑ݃݊݋‬൅ ͳ ,QFKDQJHDEOH ,QFKDQJHDEOH ,QFKDQJHDEOH




([HUFLFH

(FULUHXQHIRQFWLRQ݅݊‫ܳܶ݁ݎ݁ݏ݊݅ݐ‬ሺ‫݈ כ ܳܶ݁ݐݏ݅ܮ‬ǡ ݈݁݁݉݁݊‫݁ݐ‬ǡ ݅݊‫ݏ݋݌ݐ‬ሻTXLUHQYRLHVLO¶pOpPHQW݁HVW


LQVHUpjODSRVLWLRQ‫ݏ݋݌‬VLQRQ

6ROXWLRQ
intinsereTQ(ListeTQ*l,elemente,intpos){
 inti=1;
 Cellule*p;
 Cellule*n;
 Cellule*t=(*l).Tete;
 intlongueur=(*l).longueur;
 if(pos<1||pos>longueur+1){printf("positioninvalide!");return0;}

if(pos==1){//Casd’insertionàlapremièreposition
 insererEnTete(&t,e);
 (*l).Tete=t;

 if(longueur==0)//Casd’insertiondansunelistevide
  (*l).Queue=t;

 (*l).longueur=longueur+1;
 return1;}

//Casd'insertiondansuneposition1<pos<longueur+1
 p=t;
 while(i<posŞ1){
p=pŞ>suivant;
i++;}
 n=malloc(sizeof(Cellule));
 nŞ>contenu=e;
 nŞ>suivant=pŞ>suivant;
 pŞ>suivant=n;
 //Casd’insertionàlafindelaliste 
 if(pos==longueur+1)
  (*l).Queue=n;
 (*l).longueur=longueur+1;
 return1;
}//FininsereTQ


+7(**$5  
Chapitre 4 Les structures séquentielles
 

6RLW ݈XQH YDULDEOH GH W\SH ‫ ܳܶ݁ݐݏ݅ܮ‬HW ‫ ݏ݋݌‬XQ HQWLHU O¶RSpUDWLRQ GH VXSSUHVVLRQV PRGLILH OHV
FKDPSVGHODVWUXFWXUH݈ ܶ݁‫݁ݑ݁ݑܳ݁ݐ‬HW݈‫ ݎݑ݁ݑ݃݊݋‬FRPPHVXLW

&DV 7rWHSRLQWHVXU 4XHXHSRLQWHVXU /RQJXHXU


ܲ‫ ݏ݋‬ൌ ͳƬ݈Ǥ ݈‫ ݎݑ݁ݑ݃݊݋‬ൌ ͳ 18// 18// ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ െ െ
ܲ‫ ݏ݋‬ൌ ͳƬ݈Ǥ ݈‫ ݎݑ݁ݑ݃݊݋‬൐ ͳ ࡸെ൐ ‫݁ݐ݁ݐ‬െ൐ ‫ݐ݊ܽݒ݅ݑݏ‬ ,QFKDQJHDEOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ െ െ
ܲ‫ ݏ݋‬ൌ ݈Ǥ ݈‫ݎݑ݁ݑ݃݊݋‬Ƭ‫ͳ ് ݏ݋݌‬ ,QFKDQJHDEOH &HOOXOHSUpFpGHQWH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ െ െ
ͳ ൏ ‫ ݏ݋݌‬൏ ݈Ǥ ݈‫ݎݑ݁ݑ݃݊݋‬ ,QFKDQJHDEOH ,QFKDQJHDEOH ࢒Ǥ ࢒࢕࢔ࢍ࢛ࢋ࢛࢘ െ െ
݈ ൌ ݈݅‫ܸ݁݀݅݁ݐݏ‬ ,QFKDQJHDEOH 18//  ,QFKDQJHDEOH 18//  ,QFKDQJHDEOH  
ͳ ൐ ‫ ݏ݋݌ݑ݋ݏ݋݌‬൐ ݈Ǥ ݈‫ݎݑ݁ݑ݃݊݋‬ ,QFKDQJHDEOH 18//  ,QFKDQJHDEOH 18//  ,QFKDQJHDEOH

([HUFLFH

(FULUH XQH IRQFWLRQ ݅݊‫ܳܶݎ݁݉݅ݎ݌݌ݑݏݐ‬ሺ‫݈ כ ܳܶ݁ݐݏ݅ܮ‬ǡ ݅݊‫ݏ݋݌ݐ‬ሻ TXL UHQYRLH  VL O¶pOpPHQW TXL VH
WURXYHjODSRVLWLRQ‫ݏ݋݌‬HVWVXSSULPpVLQRQ

6ROXWLRQ
intsupprimerTQ(ListeTQ*l,intpos){
 Cellule*place;
 inti;
 intlongueur=(*l).longueur;
 Cellule*t=(*l).Tete;
 if(t==NULL){printf("ListeVide\n");return0;}
  
 if(pos<1||pos>longueur){printf("positioninvalide!\n");return0;}
 
if(pos==1){//suppressionentêtedeliste
   (*l).Tete=(*l).TeteŞ>suivant;
   (*l).longueur=longueurŞ1;   
   free(t);
   return1;}
 place=t;
 for(i=1;i<posŞ1;i++)
   place=placeŞ>suivant;
 Cellule*temp=placeŞ>suivant;
 placeŞ>suivant=placeŞ>suivantŞ>suivant;
 free(temp);
       
 if(pos==longueur)//cassuppressionàlafindelaliste
   (*l).Queue=place;
 (*l).longueur=longueurŞ1;
 //Suppressiondansunelistecontenantunseulélément
 if((*l).longueur==0){
     (*l).Tete=NULL;
     (*l).Queue=NULL;}
 return1;}//FinsupprimerTQ

 /LVWHVLPSOHPHQWFKDvQpHFLUFXODLUH

8QHOLVWHFLUFXODLUHHVWXQHOLVWHVLPSOHPHQWFKDvQpHGDQVODTXHOOHOHFKDPS‫ݐ݊ܽݒ݅ݑݏ‬GHODGHU
QLqUHFHOOXOHSRLQWHVXUODSUHPLqUHFHOOXOH3RXUPDQLSXOHUXQHOLVWHFLUFXODLUHQRXVFKRLVLVVRQV

+7(**$5  
Chapitre 4 Les structures séquentielles
 

XQVHXOSRLQWG¶HQWUpHGDQVODOLVWHUHSUpVHQWpSDUOHSRLQWHXUTXLSRLQWHVXUODGHUQLqUHFHOOXOH
YRLUILJXUHFLGHVVRXV 

 dernier #&


#& #& #& #&

6XL#& 6XL#& 6XL#& 6XL#&
 (OP% (OP& (OP' (OP)

$SDUWLUGHSRLQWHXU݀݁‫ݎ݁݅݊ݎ‬RQSHXWDFFpGHUGLUHFWHPHQWjODGHUQLqUHFHOOXOHHQSOXVGDQVOH
FDVG¶XQHOLVWHQRQYLGHRQDFFqGHjODSUHPLqUHFHOOXOHSDUOHFKDPS‫ݐ݊ܽݒ݅ݑݏ‬GHODFHOOXOHVXU
ODTXHOOHLOSRLQW݀݁‫ݎ݁݅݊ݎ‬2QUHPDUTXHDXVVLTX¶RQSHXWIDLUHXQSDUFRXUVFRPSOHWGDQVXQVHXO
VHQVHQUHYHQDQWWRXMRXUVDXSRLQWHXU݀݁‫ݎ݁݅݊ݎ‬

/D SDUWLFXODULWp GH FHWWH VWUXFWXUH HVW TX¶LO Q¶H[LVWH SDV XQ FKDPS ‫ ݐ݊ܽݒ݅ݑݏ‬ൌ ܷܰ‫ ܮܮ‬TXHOOH TXH
VRLW OD FHOOXOH DSSDUWHQDQW j FHWWH OLVWH 1RXV GHYURQV GRQF IDLUH DWWHQWLRQ GH QH SDV ERXFOHU
LQILQLPHQWHQSDUFRXUDQWFHW\SHGHOLVWHV

8QH VROXWLRQ FRQVLVWH G¶DERUG j FRSLHU OD YDOHXU GX SRLQWHXU ݀݁‫ ݎ݁݅݊ݎ‬DGUHVVH GH OD GHUQLqUH
FHOOXOH GDQVXQHYDULDEOH‫(݌݉݁ݐ‬QVXLWHHQXWLOLVDQWFHGHUQLHUSRLQWHXURQFRPPHQFHOHSDU
FRXUV j SDUWLU GH OD FHOOXOH VXLYDQWH VXU ODTXHOOH LO SRLQW ‫ ݌݉݁ݐ‬HW XQH IRLV RQ SRLQWHUD VXU XQH
FHOOXOH FRQWHQDQW XQ FKDPS ‫ ݐ݊ܽݒ݅ݑݏ‬GRQW VD YDOHXU pJDOH j OD YDOHXU GH ݀݁‫ ݎ݁݅݊ݎ‬RQ VH UHQG
FRPSWHTXHODFHOOXOHVXLYDQWHoDVHUDODGHUQLqUH
voidparcoursCirculaire(Listel){
 Cellule*dernier=l;
 Cellule*temp;
 inti=1;

 if(dernier!=NULL){
  temp=dernier;
  temp=tempŞ>suivant;
  printf("liste(%d)=%d\n",i++,tempŞ>contenu); 
  
while(temp!=dernier){   
   temp=tempŞ>suivant;
   printf("liste(%d)=%d\n",i++,tempŞ>contenu);  
  }
  
 }
}
/HVRSpUDWLRQVG¶LQVHUWLRQHWGHVXSSUHVVLRQVRQWGpILQLHVGDQVODVHFWLRQ

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 /LVWHVGRXEOHPHQWFKDvQpHV

1RXV DYRQV YX TXH OH SDUFRXUV GDQV WRXWHV OHV YDULDQWHV GH OLVWHV SUpVHQWpHV MXVTX¶DX LFL
V¶HIIHFWXHGDQVXQVHXOVHQV3DUH[HPSOHpWDQWGRQQpTXHQRXVDYRQVDFFpGpjXQHFHOOXOH
SRXUODVXSSULPHULOHVWLPSpUDWLYHPHQWLPSRVVLEOHGHVDYRLUO¶DGUHVVHGHODFHOOXOHTXLODSUp
FqGH VDXI VL RQ D VDXYHJDUGp VRQ DGUHVVH DXSDUDYDQW SDU H[HPSOH OD YDULDEOH ‫ ݈݁ܿܽ݌‬FRQ
WLHQQH O¶DGUHVVH GH OD FHOOXOH SUpFpGHQWH GDQV OHV DOJRULWKPHV GH VXSSUHVVLRQ GDQV OHV OLVWHV
VLPSOHPHQWFKDvQpHV 

 / #&


#& #& #& #&

6XL#& 6XL#&  6XL#& 6XL18//


(OP% (OP& (OP' (OP)

3UH18// 3UH#& 3UH#& 3UH#&


3RXU XQH PDQLSXODWLRQ SOXV VRXSOH LO H[LVWH DXVVL G¶DXWUHV YDULDQWHV GH OLVWHV FKDvQpHV GLWHV
ELGLUHFWLRQQHOOHV RX GRXEOHPHQW FKDvQpHV  TXL SHXYHQW rWUH SDUFRXUXHV GDQV OHV GHX[ VHQV
GHODSUHPLqUHFHOOXOHMXVTX¶jODGHUQLqUHFHOOXOHHWLQYHUVHPHQW

 5HSUpVHQWDWLRQGHVOLVWHVGRXEOHPHQWFKDLQpHV

/DVWUXFWXUHGHODFHOOXOHXWLOLVpHGDQVOHVOLVWHVFKDvQpHVELGLUHFWLRQQHOOHVGRLWrWUHGRQFFRP
SRVpHGH

x 8QFKDPSSRXUOHܿ‫ݑ݊݁ݐ݊݋‬

x 8QSRLQWHXU‫ݐ݊ܽݒ݅ݑݏ‬TXLFRQWLHQWO DGUHVVHGHODFHOOXOHVXLYDQWHGDQVODOLVWH

x 8QSRLQWHXU‫ݐ݊݁݀݁ܿ݁ݎ݌‬TXLFRQWLHQWO DGUHVVHGHFHOOXOHSUpFpGHQWHGDQVODOLVWH

/DVWUXFWXUHGHFHOOXOHGDQVXQHOLVWHGRXEOHPHQWFKDvQpHHVWGpILQLHSDU
typedefintelement;
typedefstructCellule{
elementcontenu;
structCellule*precedent;
structCellule*suivant;}Cellule;

typedefstructCellule*liste_Db_Ch;

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 /HVRSpUDWLRQVVXUOHVOLVWHVGRXEOHPHQWFKDvQpHV

2EVHUYDWHXU ࢖ࢇ࢘ࢉ࢕̴࢛࢙࢘ࡳࢇ࢛ࢉࢎࢋ̴ࡰ࢘࢕࢏࢚ࢋሺ࢒࢏࢙࢚ࢋ̴ࡰ࢈̴࡯ࢎࡸሻ &HWWH SURFpGXUH LWpUDWLYH DIILFKH OHV


pOpPHQWVFRQWHQXVGDQVOHVFHOOXOHVHQSDUFRXUDQWGX©JDXFKHjGURLWHªXQHOLVWHGRXEOHPHQW
FKDvQpH
voidparcours_Gauche_Droite(liste_Db_ChL){
Cellule*place;
place=L;
while(place!=NULL){
printf("%d",placeŞ>contenu);
place=placeŞ>suivant;
}
}


2EVHUYDWHXU ࢖ࢇ࢘ࢉ࢕̴࢛࢙࢘ࡰ࢘࢕࢏࢚ࢋ̴ࡳࢇ࢛ࢉࢎࢋሺ࢒࢏࢙࢚ࢋ̴ࡰ࢈̴࡯ࢎࡸሻ &HWWH SURFpGXUH LWpUDWLYH DIILFKH OHV


pOpPHQWVFRQWHQXVGDQVOHVFHOOXOHVHQSDUFRXUDQWGX©GURLWHjJDXFKHªXQHOLVWHGRXEOHPHQW
FKDvQpH
voidparcours_Droite_Gauche(liste_Db_ChL){
 Cellule*place;
place=L;
while(place!=NULL&&placeŞ>suivant!=NULL)
place=placeŞ>suivant;
while(place!=NULL){
printf("%d",placeŞ>contenu);
place=placeŞ>precedent;
}
}


2SpUDWLRQ ࢏࢔࢙ࢋ࢘ࢋ࢘ࡱ࢔ࢀࢋ࢚ࢋሺ࢒࢏࢙࢚ࢋ̴ࡰ࢈̴࡯ࢎ ‫࢒ כ‬ǡ ࢋ࢒ࢋ࢓ࢋ࢔࢚ࢋሻ SURFpGXUH TXL SHUPHW GH FUpHU XQH FHO
OXOHFRQWHQDQWO¶pOpPHQW݁/¶LQVHUWLRQDXUDOLHXDXGpEXWGHODOLVWH
voidinsererEnTete(liste_Db_Ch*L,elemente){
 Cellule*place;
 place=malloc(sizeof(Cellule));
 placeŞ>contenu=e;
 placeŞ>precedent=NULL;
 placeŞ>suivant=NULL;
 if(*L!=NULL){//listenonvide
  (*L)Ş>precedent=place;
  placeŞ>suivant=*L;
 }
 *L=place;//nouvelletete
}

2SpUDWLRQࢇ࢐࢕࢛࢚ࢋ࢘ሺ࢒࢏࢙࢚ࢋ̴ࡰ࢈̴࡯ࢎ ‫࢒ כ‬ǡ ࢋ࢒ࢋ࢓ࢋ࢔࢚ࢋǡ ࢏࢔࢚࢖࢕࢙ሻIRQFWLRQTXLSHUPHWODFUpDWLRQG\QD
PLTXH G¶XQH FHOOXOH FRQWHQDQW O¶pOpPHQW ݁ /D IRQFWLRQ UpDOLVH OD FUpDWLRQ HW O¶LQVHUWLRQ G¶XQH
FHOOXOHGDQVXQHOLVWHGRXEOHPHQWFKDvQpHVDXIVLODSRVLWLRQHVWYDOLGHGDQVFHFDVHOOHUHQYRLH
VLQRQHOOHUHYRLH&HWWHIRQFWLRQQHIDLWSDVDSSHOjODIRQFWLRQ݈‫ݎݑ݁ݑ݃݊݋‬ሺሻǤ

+7(**$5  
Chapitre 4 Les structures séquentielles
 

intajouter(liste_Db_Ch*L,elemente,intpos){
 inti=1;
 Cellule*place;
Cellule*n;
 if(pos<1){ printf("positioninvalide!");
    return0;}

  if(pos==1){ insererEnTete(L,e);
    return1;}

 place=*L;
 while(place!=NULL&&i<posŞ1){
 place=placeŞ>suivant;
  i=i+1;}

  if(place==NULL){ printf("positioninvalide!");
    return0;}
   
  n=malloc(sizeof(Cellule));
 nŞ>contenu=e;
  nŞ>suivant=placeŞ>suivant;
 nŞ>precedent=place;
  if(placeŞ>suivant!=NULL)placeŞ>suivantŞ>precedent=n;
  placeŞ>suivant=n;
  return1;
}


2SpUDWLRQ ࢙࢛࢖࢖࢘࢏࢓ࢋ࢘ሺ࢒࢏࢙࢚ࢋ̴ࡰ࢈̴࡯ࢎ ‫࢒ כ‬ǡ ࢏࢔࢚࢖࢕࢙ሻ 'DQV XQH OLVWH GRXEOHPHQW FKDvQpH VL ‫ݏ݋݌‬
HVWXQHSRVLWLRQYDOLGHFHWWHIRQFWLRQVXSSULPHODFHOOXOHTXLVHWURXYHjODSRVLWLRQ‫ݏ݋݌‬HWHOOH
UHQYRLHVLQRQ
intsupprimer(liste_Db_Ch*L,intpos) {
 inti=1;
Cellule*place;
 Cellule*n;
 if(pos<1){ printf("positioninvalide!");
    return0;}
 
 if(*L==NULL){ printf("listevide!");
    return0;}
 
 if(pos==1){ place=*L;
    *L=(*L)Ş>suivant;
    if((*L)!=NULL)
     (*L)Ş>precedent=NULL;
    free(place);
    return1;}
     
 place=*L;
while(place!=NULL&&i<pos){
 if(placeŞ>suivant==NULL){
  printf("positioninvalide!\n");
  return0;}
place=placeŞ>suivant;
i=i+1;
 }
 placeŞ>precedentŞ>suivant=placeŞ>suivant;
+7(**$5  
Chapitre 4 Les structures séquentielles
 

 if(placeŞ>suivant!=NULL)
  placeŞ>suivantŞ>precedent=placeŞ>precedent;
 free(place);
 return1;
}

 /HVYDULDQWHVGHVOLVWHVGRXEOHPHQWVFKDvQpHV

&RPPHOHVOLVWHVVLPSOHPHQWFKDvQpHVRQSHXWGpILQLUOHVYDULDQWHVGHVOLVWHVELGLUHFWLRQQHOOHV
DYHFOHEORFሺܶ²‫݁ݐ‬ǡ ܳ‫݁ݑ݁ݑ‬ǡ ݈‫ݎݑ݁ݑ݃݊݋‬ሻHWG¶DXWUHVFLUFXODLUHVGRXEOHPHQWFKDvQpHV

 /HVSLOHV

/HV SLOHV VRQW XQH DXWUH YDULDQWH GH OLVWHV GDQV OHVTXHOOHV OHV RSpUDWLRQV G¶DGMRQFWLRQ HW GH
VXSSUHVVLRQVVHIRQWjXQHVHXOHH[WUpPLWpDSSHOpHVRPPHWGHSLOH/HVSLOHVVRQWDXVVLDSSH
OpHV/,)2SRXU/DVW,Q)LUVWXWFµHVWjGLUHGHUQLHUHQWUpSUHPLHUVRUWLXQERQH[HPSOHSRXU
LOOXVWUHUXQHSLOHHVWG¶LPDJLQHUXQHSLOHG¶DVVLHWWHVF¶HVWHQKDXWGHODSLOHTX¶LOIDXWSUHQGUHRX
PHWWUHXQHDVVLHWWH

 'pILQLWLRQIRUPHOOHVGHVSLOHV

8QHSLOHɏHVWXQHVXLWHILQLHpYHQWXHOOHPHQWYLGHG¶pOpPHQWVUHSpUpVVHORQOHXUUDQJGDQVOD
OLVWHɏ ൌ൏ ‡ଵ ǡ ‡ଶ ǡ Ǥ Ǥ ǡ ‡୬ ൐/HVRSpUDWLRQVVXUOHVSLOHVVRQW

x WHVWHUVLXQHSLOHHVWYLGH

x DFFpGHUDXVRPPHWG¶XQHSLOH

x HPSLOHUXQpOpPHQW

x UHWLUHUO¶pOpPHQWTXLVHWURXYHDXVRPPHW GpSLOHU 
/DVLJQDWXUHGXW\SHDEVWUDLW݈ܲ݅݁HVWGRQQpHFRPPHVXLW

7\SH݈ܲ݅݁

3URWRW\SHV

‫ܸ݈݁݀݅݁݅݌݈݁݅݌‬ሺሻǢ
‫ݎ݈݁݋݌݈݉݁݁݅݌‬ሺ݈ܲ݅݁ǡ ݈݁݁݉݁݊‫ݐ‬ሻǢ
‫݈݀݁݅݌‬±‫ݎ݈݁݅݌‬ሺ݈ܲ݅݁ሻǢ
݈݁݁݉݁݊‫ݐ݁݉݉݋ݏݐ‬ሺ݈ܲ݅݁ሻǢ
ܾ‫ܸ݁݀݅ݐݏ݈݁݊ܽ݁݋݋‬ሺ݈ܲ݅݁ሻǢ


3UpFRQGLWLRQV

+7(**$5  
Chapitre 4 Les structures séquentielles
 

/HVRSpUDWLRQV݀±‫ݎ݈݁݅݌‬HW ‫ݐ݁݉݉݋ݏ‬QHVRQWGpILQLHVTXHVLODSLOHQµHVWSDVYLGH

݀±‫ݎ݈݁݅݌‬ሺ‫݌‬ሻHVWGpILQLHVLHVWVHXOHPHQWVL݁‫ܸ݁݀݅ݐݏ‬ሺ‫݌‬ሻ  ൌ ݂ܽ‫ݔݑ‬
‫ݐ݁݉݉݋ݏ‬ሺ‫݌‬ሻHVWGpILQLHVLHVWVHXOHPHQW݁‫ܸ݁݀݅ݐݏ‬ሺ‫݌‬ሻ  ൌ ݂ܽ‫ݔݑ‬

$[LRPHV

&HVRSpUDWLRQVYpULILHQWOHVD[LRPHVVXLYDQWVR‫݌‬HVWGHW\SH‫݈݁݅݌‬HW݁GHW\SH݈݁݁݉݁݊‫ݐ‬

݀±‫ݎ݈݁݅݌‬ሺ݁݉‫ݎ݈݁݅݌‬ሺ‫݌‬ǡ ݁ሻሻ  ൌ ‫݌‬


‫ݐ݁݉݉݋ݏ‬ሺ݁݉‫ݎ݈݁݅݌‬ሺ‫݌‬ǡ ݁ሻሻ  ൌ ݁

' DXWUHSDUWO¶RSpUDWLRQ݁‫ܸ݁݀݅ݐݏ‬YpULILH

݁‫ܸ݁݀݅ݐݏ‬ሺ‫ ݁ܫ݅݌‬െ ‫݁݀݅ݒ‬ሻ  ൌ ‫݅ܽݎݒ‬


݁‫ܸ݁݀݅ݐݏ‬ሺ݁݉‫ݎ݈݁݅݌‬ሺ‫݌‬ǡ ݁ሻሻ  ൌ ݂ܽ‫ݔݑ‬

 5HSUpVHQWDWLRQFKDvQpHG¶XQHSLOH

3RXULPSOpPHQWHUOHVSLOHVRQSHXWXWLOLVHUWRXWHVOHVUHSUpVHQWDWLRQVpWXGLpHVSUpFpGHPPHQW
SRXUOHVOLVWHV1RXVFKRLVLVVRQVLFLXQHUHSUpVHQWDWLRQFKDvQpHWHOOHTXHOHVpOpPHQWVVHURQW
HQFDSVXOpVGDQVGHVFHOOXOHVTXLVRQWFKDvQpHVHQWUHHOOHV/HVRPPHWG¶XQHSLOHQRQYLGHHVW
ODSUHPLqUHFHOOXOHGHODOLVWHODSLOHYLGHHVWUHSUpVHQWpHSDUܷܰ‫ܮܮ‬2QDGRQFOHVVWUXFWXUHVGH
GRQQpHVVXLYDQWHV
typedefintelement;
typedefstructCellule*pile;

typedefstructCellule{
elementval;
pilesuivant;}Cellule;

1RXVGpILQLVVRQVDXVVLXQHIRQFWLRQTXLSHUPHWGHFUpHUXQHFHOOXOHFRPPHVXLW
Cellule*creeCellule(elemente){
 pilel;
 l=malloc(sizeof(Cellule));
 lŞ>val=e;
 lŞ>suivant=NULL;
 returnl;
}

(WO¶REVHUYDWHXU݁‫ܸ݁݀݅ݐݏ‬ሺሻFRPPHVXLW
intestVide(pilep){
 returnp==NULL;
}

+7(**$5  
Chapitre 4 Les structures séquentielles
 

 /¶RSpUDWLRQG¶HPSLOHPHQWG¶XQpOpPHQW

/D SURFpGXUH ݁݉‫ݎ݈݁݅݌‬ሺሻ SUHQG HQ DUJXPHQW XQ pOpPHQW ݁ HW O¶DGUHVVH GX SRLQWHXU GH OD SUH
PLqUHFHOOXOHGHODSLOH&HWWHSURFpGXUHQ¶DDXFXQHSUpFRQGLWLRQHWHOOHYDFUpHUGLUHFWHPHQW
XQHFHOOXOHSRXUO¶pOpPHQW݁SXLVHOOHLQVqUHFHWWHFHOOXOHHQWrWHGHODSLOHHQUHQYR\DQWODYD
OHXU
voidempiler(elemente,pile*p){
 Cellule*c;
 c=creeCellule(e);
 cŞ>suivant=*p;
 *p=c;
}

 /¶RSpUDWLRQGHGpSLOHPHQWG¶XQpOpPHQW

/DIRQFWLRQ݀±‫ݎ݈݁݅݌‬ሺሻUHQYRLHVLODSLOH‫݌‬HVWYLGH3XLVTXHFHWWHIRQFWLRQPRGLILHODVWUXFWXUH
GHODOLVWHOHSDUDPqWUH‫݌ כ‬UHSUpVHQWHO¶DGUHVVHGXSRLQWHXUGHODSUHPLqUHFHOOXOH SDVVDJHSDU
DGUHVVH 
intdepiler(pile*p){
 if(estVide(*p)){ printf("Pilevide!\n");
      return0;}
 Cellule*c=*p;
 (*p)=(*p)Ş>suivant;
 free(c);
 return1;
}

 /¶RSpUDWLRQGHUpFXSpUDWLRQG¶XQpOpPHQWHQVRPPHWGHSLOH

/DIRQFWLRQ‫ ݐ݁݉݉݋ݏ‬YpULILHG¶DERUGVLODSLOH‫݌‬HVWYLGHVLF¶HVWOHFDVHOOHUHQYRLHVLQRQHOOH
UpFXSqUHO¶pOpPHQWHQVRPPHWGHODSLOHHQOHPHWWDQWGDQVXQHYDULDEOHGRQWVRQDGUHVVH‫݁ כ‬
SDVVpHHQDUJXPHQWSXLVHOOHUHQYRLH
intsommet(pilep,element*e){
 if(estVide(p)){ printf("Pilevide!\n");
    e=NULL;
    return0;}
 *e=pŞ>val;
 return1;
}

 /HVILOHV

'DQVOHFDVG¶XQHILOHRQIDLWOHVDGMRQFWLRQVjXQHH[WUpPLWpOHVDFFqVHWOHVVXSSUHVVLRQVj
O¶DXWUHH[WUpPLWp3DUDQDORJLHDYHFOHVILOHVG¶DWWHQWHRQGLWTXHO¶pOpPHQWSUpVHQWGHSXLVOHSOXV
ORQJWHPSVHVWOHSUHPLHURQGLWDXVVLTX¶LOHVWHQWrWH/HVILOHVVRQWDXVVLDSSHOpH),)2SRXU
+7(**$5  
Chapitre 4 Les structures séquentielles
 

)LUVW,Q)LUVW2XW F¶HVWjGLUH SUHPLHUHQWUpSUHPLHUVRUWL /HV RSpUDWLRQV VXU OHV ILOHV VRQW


WHVWHUVLXQHILOHHVWYLGH

x $FFpGHUDXSUHPLHUpOpPHQWGHODILOH

x DMRXWHUXQpOpPHQWGDQVODILOH

x UHWLUHUOHSUHPLHUpOpPHQWGHODILOH

7\SH‫݈݁݅ܨ‬

3URWRW\SHV

‫ܸ݈݂݈݁݀݅݁݅݁݅ܨ‬ሺሻǢ
‫ݎ݈݂݈݁݅݊݁݁݅ܨ‬ሺ‫݈݁݅ܨ‬ǡ ݈݁݁݉݁݊‫ݐ‬ሻǢ
‫ݎ݁ݎ݅ݐ݁ݎ݈݁݅ܨ‬ሺ‫݈݁݅ܨ‬ሻǢ
݈݁݁݉݁݊‫ݎ݁݅݉݁ݎ݌ݐ‬ሺ‫݈݁݅ܨ‬ሻǢ
ܾ‫ܸ݁݀݅ݐݏ݈݁݊ܽ݁݋݋‬ሺ‫݈݁݅ܨ‬ሻǢ

3UpFRQGLWLRQ

/HVRSpUDWLRQ‫ ݎ݁ݎ݅ݐ݁ݎ‬VHW‫ݎ݁݅݉݁ݎ݌‬QHVRQWGpILQLHVTXHVLODILOHQ¶HVWSDVYLGH

‫ݎ݁ݎ݅ݐ݁ݎ‬ሺ݂ሻHVWGpILQLHVLHVWVHXOHPHQWVL݁‫ܸ݁݀݅ݐݏ‬ሺ݂ሻ  ൌ ݂ܽ‫ݔݑ‬
‫ݎ݁݅݉݁ݎ݌‬ሺ݂ሻHVWGpILQLHVLHVWVHXOHPHQW݁‫ܸ݁݀݅ݐݏ‬ሺ݂ሻ  ൌ ݂ܽ‫ݔݑ‬

$[LRPHV

&HVRSpUDWLRQVYpULILHQWOHVD[LRPHVVXLYDQWVR݂HVWGHW\SH݂݈݅݁HW݁GHW\SH݈݁݁݉݁݊‫ݐ‬

'¶DXWUHSDUWO¶RSpUDWLRQ݁‫ܸ݁݀݅ݐݏ‬YpULILH

݁‫ܸ݁݀݅ݐݏ‬ሺ݂݈ܸ݅݁݅݀݁ሺሻሻ  ൌ ‫݅ܽݎݒ‬
݁‫ܸ݁݀݅ݐݏ‬ሺ݂݈݁݊݅݁‫ݎ‬ሺ݂ǡ ݁ሻሻ  ൌ ݂ܽ‫ݔݑ‬
݁‫ܸ݁݀݅ݐݏ‬ሺ‫ݒ‬ሻ ൌ ‫ݎ݁݅݉݁ݎ݌ ฺ ݅ܽݎݒ‬൫݂݈݁݊݅݁‫ݎ‬ሺ݂ǡ ݁ሻ൯ ൌ ݁
݁‫ܸ݁݀݅ݐݏ‬ሺ‫ݒ‬ሻ ൌ ݂ܽ‫ݎ݁݅݉݁ݎ݌ ฺ ݔݑ‬൫݂݈݁݊݅݁‫ݎ‬ሺ݂ǡ ݁ሻ൯ ൌ ‫ݎ݁݅݉݁ݎ݌‬ሺ݂ሻ
݁‫ܸ݁݀݅ݐݏ‬ሺ‫ݒ‬ሻ ൌ ‫ݎ݁ݎ݅ݐ݁ݎ ฺ ݅ܽݎݒ‬൫݂݈݁݊݅݁‫ݎ‬ሺ݂ǡ ݁ሻ൯ ൌ ݂݈ܸ݅݁݅݀݁
݁‫ܸ݁݀݅ݐݏ‬ሺ‫ݒ‬ሻ ൌ ݂ܽ‫ݎ݁ݎ݅ݐ݁ݎ ฺ ݔݑ‬൫݂݈݁݊݅݁‫ݎ‬ሺ݂ǡ ݁ሻ൯ ൌ ݂݈݁݊݅݁‫ݎ‬ሺ‫ݎ݁ݎ݅ݐ݁ݎ‬ሺ݂ሻǡ ݁ሻ

 5HSUpVHQWDWLRQG¶XQHILOH

2QSHXWSUpVHQWHUOHVILOHVGHPDQLqUHFRQWLJHRXGHPDQLqUHFKDvQpH'DQVFHTXLVXLWQRXV
DOORQVFKRLVLUXQHUHSUpVHQWDWLRQFKDvQpH

3XLVTXHOHVGHX[RSpUDWLRQV‫ݎ݁ݎ݅ݐ݁ݎ‬HW݂݈݁݊݅݁‫ݎ‬RSqUHQWVXUOHVH[WUpPLWpVRSSRVpHVGHODILOH
QRXV SRXYRQV GRQF FKRLVLU VRLW OD VWUXFWXUH G¶XQH OLVWH DYHF OH SORF ‫ݐ‬²‫ ݁ݐ‬HW ‫  ݁ݑ݁ݑݍ‬VRLW XQH

+7(**$5  
Chapitre 4 Les structures séquentielles
 

OLVWH FLUFXODLUH 3RXU XQH OLVWH FLUFXODLUH QRXV GpILQLURQV OHV VWUXFWXUHV GH GRQQpHV VXLYDQWHV
SRXUODUHSUpVHQWDWLRQGHVILOHV
Typedefintelement;

typedefstructCellule{
elementcontenu;
structCellule*suivant;}Cellule;

typedefstructCellule*File;

 /¶RSpUDWLRQG¶HQILOHPHQWG¶XQpOpPHQW

/DSURFpGXUH݂݈݁݊݅݁‫ݎ‬ሺሻSUHQGHQDUJXPHQWXQpOpPHQW݁HWO¶DGUHVVHGXSRLQWHXUGHODSUHPLqUH
FHOOXOHGHODILOH&HWWHSURFpGXUHQ¶DDXFXQHSUpFRQGLWLRQ2QSUHQGQRWHTXHGDQVOHFDVROD
ILOHHVWYLGHO¶pOpPHQWQRXYHOOHPHQWLQVpUpHVWFRQVLGpUpFRPPHOHSUHPLHUHWOHGHUQLHUGDQV
ODILOH'DQVFHFDVOHFKDPS‫ݐ݊ܽݒ݅ݑݏ‬GHODFHOOXOHTXHQRXVYRXORQVLQVpUHUSRLQWHYHUVFHWWH
PrPHFHOOXOH'DQVOHFDVJpQpUDOOHSRLQWHXU‫݂ כ‬UHSUpVHQWHO¶DGUHVVHGXSRLQWHXUGHODGHU
QLqUH FHOOXOH GDQV OD ILOH HW QRQ SDV OH SUHPLHU  HW SXLVTXH O¶LQVHUWLRQ V¶HIIHFWXH j OD ILQ GH OD
OLVWHFHSRLQWHXUVHUDGRQFPRGLILpSRXUTX¶LOGHYLHQWXQSRLQWHXUYHUVODQRXYHOOHFHOOXOHLQVp
UpH
Voidenfiler(File*f,elemente){
 Cellule*c;
 c=malloc(sizeof(Cellule));
 cŞ>contenu=e;
 if(*f==NULL)cŞ>suivant=c;//casd’unefilevide
 else{cŞ>suivant=(*f)Ş>suivant;
   (*f)Ş>suivant=c;}
 *f=c;
}

 /¶RSpUDWLRQUHWLUHUXQpOpPHQW

/DIRQFWLRQ‫ݎ݁ݎ݅ݐ݁ݎ‬ሺ ሻUHQYRLHVLODILOH݂ HVWYLGHVLQRQVLHOOHFRQWLHQWXQVHXOpOpPHQW ሺሺ‫כ‬


݂ሻെ൐ ‫ ݐ݊ܽݒ݅ݑݏ‬ൌൌ‫݂ כ‬ሻ RQ PRGLILH OH SRLQWHXU HQ OXL DIIHFWDQW ܷܰ‫ ݂ כ  ܮܮ‬ൌ ܷܰ‫'  ܮܮ‬DQV OHV
DXWUHVFDVLOVXIILWGHVXSSULPHUODFHOOXOHVXLYDQWHGHFHOOHVXUODTXHOOHLOSRLQWH‫݂ כ‬
intretirer(File*f){
 Cellule*s;
 if(*f==NULL){ printf("Filevide!\n");
     return0;}
 if((*f)Ş>suivant==*f){//casd'unefilecontenantunseulélément
     free(*f);
     *f=NULL;//filedeviennevide
     return1;}
 s=(*f)Ş>suivant;
 (*f)Ş>suivant=(*f)Ş>suivantŞ>suivant;
 free(s);
 return1;
}
+7(**$5  
Chapitre 4 Les structures séquentielles
 

 2SpUDWLRQGHUpFXSpUDWLRQG¶XQpOpPHQW

/DIRQFWLRQ‫ݎ݁݅݉݁ݎ݌‬ሺሻYpULILHG¶DERUGVLODILOH݂HVWYLGHVLF¶HVWOHFDVHOOHUHQYRLHVLQRQHOOH
UpFXSqUHO¶pOpPHQWHQHQWrWHGHOLVWH LFLF¶HVWO¶pOpPHQWGHODFHOOXOHVXLYDQWHGH݂ HQOHPHW
WDQWGDQVXQHYDULDEOHGRQWVRQDGUHVVH‫݁ כ‬HVWSDVVpHHQDUJXPHQWSXLVHOOHUHQYRLH
Intpremier(Filef,element*e){

 if(f==NULL){printf(“Filevide!\n”);
    return0;}

 *e=fŞ>suivantŞ>contenu;
 return1;  
}



































+7(**$5  

You might also like