
Examination_IT / ComputerScience_LaboratoryWork_ForStudent
.pdf181
15. 15. 15.
( ( # 5! #
( ( # 5! #-!1 /
-!1 /.
15.1. %-./ +E(34
G A .
15.2. -( -3,D- ,- 6-*- ,
e A , ^ -
AB . - -
, , C . . -
R R>>. @ C C -
.
6-*- , ,) 1 (0 +>>, (6+ ,
; R > >. ;
, -
. D
. 16.1. 4
AB R (next). 4 -
AB R (next), -
B (prev), , B
A
R.
P A ^, -
R . 2
B A - AB R. D , ( )

182
( ).
= > |
|
= > |
|
= > |
R |
|
R |
|
R |
|
|
|
|
|
|
|
|
|
|
AB |
|
AB |
|
AB |
R |
|
R |
|
R |
|
|
|
|
|
H. 15.1. .
D R AB :
$ |
4 |
|
struct SItem |
struct DItem |
|
{ |
{ |
K. |
// k(v † ! K. |
// k(v † ! |
|
SItem *next;// I Q |
DItem *next;// |
I Q |
// ! :e L |
// ! :e L |
|
// _ . |
// _ . |
|
}; |
DItem *prev;// |
I Q |
|
// % !J! e L |
|
|
// _ . |
|
|
}; |
|
e ,
>, AB R ,
R . ! ,
R ( -
R R A), -
« » , >.
R ,
R .
(0 +>> + -+.,)+;, (* ( 6 ) (0( 1, +
P , AB -
, R, R A
184
//////////////////////////////////////////////////////////////
// J ! _ _J %. void FIOStudent::OutList(SItem *Head)
{
using namespace std;
SItem *Curr; // I Q e L _ %. if(!Head)
{
cout << "% % ." << endl; return;
}
Curr = Head; // I Q e L _ .
//J ! _ _J % ! %,
//% I Q ! :e L _ NULL. while (Curr->next)
{
//J ! ! 9 e _ %.
cout << Curr->Id << |
" "; |
|
// |
! ! |
:e _ % |
// |
(! :e L _ e). |
Curr = Curr->next;
}
//J ! ! 9 % ! _ %
//I Q ! :e L _ Q NULL. cout << Curr->Id;
cout << endl;
}
… …
, 3, 0 15.3. # +0>- 3 9+5.+ DemoList.cpp
// ! : I J K L. #include "stdafx.h"
#include <iostream> #include "List.h"
//////////////////////////////////////////////////////////////
//
void _tmain()
{
using namespace std;
using namespace FIOStudent;
// R % % QI JL IJ. setlocale(LC_CTYPE, "Russian_Russia.1251");
SItem *Head = NULL; // I Q %.
SItem *Teil; |
// |
I Q %. |
SItem *Buff; |
// K. |
|
SItem *NewItem; |
// |
JL _ %. |
185
int i;
OutList(Head);
// I! _ %. Head = new SItem;
Head->Id = 0; Head->next = NULL; Teil = Head;
// ~ % I 10 _ . for(i=1; i<10; i += 2)
{
NewItem = new SItem; NewItem->Id = i; AddItem(Head, NewItem, &Teil);
}
cout << ""! K J K %" << endl; OutList(Head);
// ‘! _ % ! K Id == 5. Buff = DeleteItem(Head, 5, &Teil);
if(Buff) delete Buff;
cout << ""! K J % ! J _ "; cout << endl;
OutList(Head);
//_ %. NewItem = new SItem;
NewItem->Id = 20; AddItem(Head, NewItem, &Teil);
cout << " _ %" << endl; OutList(Head);
//_ Id==6 K % !. NewItem = new SItem;
NewItem->Id = 6; AddItemInside(Head, NewItem, &Teil);
cout<<" _ K % !"; cout << endl;
OutList(Head);
//_ c Id==200 K % !. NewItem = new SItem;
NewItem->Id = 200; AddItemInside(Head, NewItem, &Teil);
cout<<" _ K % !"; cout << endl;
OutList(Head);

186
//R ! _ % ! K 3. Buff = GetItem(Head, 3);
if(Buff)
cout << "R L! _ Id = " << Buff->Id << endl;
else
cout << "š L!." << endl;
//‘! _ %.
DeleteAllItem(&Head, &Teil);
OutList(Head);
}
H DemoList
. 15.2.
H. 15.2. H DemoList
(0 +>> + -+.,)+;, >- j *. +E(34 ( 1, (>
- -
, B AB A
C . D - C A ( 15.4), AB , -
, R-
> ( ).
187
, 3, 0 15.4. # +0>- 3 9+5.+ MyList.cpp
// ! : I J K L. #include "stdafx.h"
#include <iostream> #include <conio.h> #include "List.h"
enum menu {EXIT, |
NEW_ELEM, |
DELETE_ELEM, |
DELETE_ALL, |
|
PRINT_ELEM, PRINT_ALL, |
SAVE_FILE, |
OPEN_FILE, |
||
END}; |
|
|
|
|
int Menu(); |
// J ! _ : |
|
void _tmain()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
SItem *Head = NULL; // I Q %.
SItem *Teil; |
// |
I Q %. |
SItem *Buff; |
// K. |
|
SItem *NewItem; |
// JL _ %. |
|
int CmdMenu; |
// ! :. |
|
for(;;) |
|
|
{ |
|
// % IJ :. |
CmdMenu = Menu(); |
||
switch (CmdMenu) |
|
|
{ |
|
// J ! I % J. |
case EXIT: |
||
return; |
|
|
break; |
|
case NEW_ELEM:
//k(v † % ; !, ! :e L
//JL _ %.
break;
case DELETE_ELEM:
//k(v † % ; !, ! :e L
//_ I %.
break;
//k(v † % ; !, J :e L Q J
//!J :.
}
}
}
//////////////////////////////////////////////////////
// J ! : % 9. int Menu()
{
188
// R % % QI JL IJ. int CmdMenu;
using namespace std;
cout << "#vR•:" << endl; |
|
|
|
|
|
for(;;) |
|
|
|
|
|
{ |
EXIT |
<< |
" |
- J !"; |
|
cout << |
|||||
cout << |
endl; |
<< |
" |
- JL _ " << endl; |
|
cout << |
NEW_ELEM |
||||
cout << |
DELETE_ELEM |
<< |
" |
- |
! Q _ ..." << endl; |
cout << |
DELETE_ALL |
<< |
" |
- |
! Q Q % _ "; |
cout << |
endl; |
<< |
" |
- J _ _ ..."; |
|
cout << |
PRINT_ELEM |
||||
cout << |
endl; |
<< |
" |
- J Q % _ "; |
|
cout << |
PRINT_ALL |
||||
cout << |
endl; |
<< |
" |
- Q K L..." << endl; |
|
cout << |
SAVE_FILE |
||||
cout << |
OPEN_FILE |
<< |
" |
- J Q K L..." << endl; |
|
cout << |
"R !J |
:: "; |
|||
cin >> |
CmdMenu; |
|
|
>= END) |
|
if(CmdMenu <0 || CmdMenu |
{
cout << "rj"sz{ - L !J ." << endl; continue;
}
else
return CmdMenu;
}
return CmdMenu;
}
15.3. + ,+ 34 )+*+ ,5
% |
: |
( ) |
|
|
- |
|
% |
||
|
|
|||
|
|
|
|
|
|
|
|
|
|
1 |
1 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D |
2 |
1 |
2 > |
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D |
|
|
|
189 |
|
|
|
|
|
|
|
: |
( ) |
|
|
% |
- |
|
% |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
3 |
1 |
|
1. |
- . |
|
|
- |
2. |
D . |
|
|
|
3. |
D |
4 |
1 |
CD |
1. - . |
|
|
|
DVD |
2. D . |
|
|
|
|
3. |
D |
5 |
1 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
|
6 |
2 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` > |
7 |
2 |
2 > |
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` > |
8 |
2 |
|
1. |
- . |
|
|
- |
2. |
D . |
|
|
|
3. |
D . |
|
|
|
4. |
` > |
9 |
2 |
CD |
1. - . |
|
|
|
DVD |
2. D . |
|
|
|
|
3. |
D . |
|
|
|
4. |
` > |
10 |
2 |
CD |
1. - . |
|
|
|
DVD |
2. D . |
|
|
|
|
3. |
D . |
|
|
|
4. |
` > |
11 |
2 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` > |
|
|
|
190 |
|
|
|
|
|
|
|
: |
( ) |
|
|
% |
- |
|
% |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
12 |
3 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` >. |
|
|
|
5. |
e > |
13 |
3 |
2 > |
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` >. |
|
|
|
5. |
e > |
14 |
3 |
|
1. |
- . |
|
|
- |
2. |
D . |
|
|
|
3. |
D . |
|
|
|
4. |
` >. |
|
|
|
5. |
e > |
15 |
3 |
CD |
1. - . |
|
|
|
DVD |
2. D . |
|
|
|
|
3. |
D . |
|
|
|
4. |
` >. |
|
|
|
5. |
e > |
16 |
3 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
` >. |
|
|
|
5. |
e > |
17 |
4 |
|
1. |
- . |
|
|
|
2. |
D . |
|
|
|
3. |
D - |
|
|
|
|
. |
|
|
|
4. |
- |
|
|
|
|
. |
|
|
|
5. |
` >. |
|
|
|
6. |
e > |