1. :
1) ;
2) ;
3) .
, , . . :
- ;
- ;
- ;
- ;
- .
/ . .
, (.).
..
:
struct _
{
;
;
};
, , ;
, , .
struct point
{
int data; //
point* next; //
};
.
, , , . , .
//
//
point* make_list(int n)
{
point*beg;//
point*p,*r;//
beg=new(point);//
cout<<"\n?";
cin>>beg->data;//
beg->next=0;//
// p ( )
p=beg;
for(int i=0;i<n-1;i++)
{
r=new(point);//
cout<<"\n?";
cin>>r->data;
r->next=0;
p->next=r;// p r
// r p ( )
p=r;
}
return beg;// beg
}
, p p=p->next , p 0, . . .
void print_list(point* beg)
//
{
point* p=beg;//
while(p!=0)
{
cout<<p->data<<"\t";
p=p->next;//
}
}
, . . .
|
|
.
point* add_point(point* beg, int k)
// k
{
point*p=beg;//
point*New=new(point);//
cout<<"Key?";cin>>New->data;
if(k==0)// , k=0
{
New->next=beg;
beg=New;
return beg;
}
for(int i=0;i<k-1&&p!=0;i++)
p=p->next;// (k-1)
if(p!=0)// k-
{
New->next=p->next;// New k-
p->next=New;// (k-1) New
}
return beg;
}
.
point* del_point(point*beg,int k)
// k
{
point*p=beg;
if(k==0)//
{
beg=beg->next;
delete p;
return beg;
}
// k-1
for(int i=1;i<k&&p->next!=0;i++)
p=p->next;
/* , */
if (p->next==0) return beg;
point* r=p->next;// r k-
p->next=r->next;// k-1 k+1
delete r;// k-
return beg;
}
, . , .
//
struct point
{
char *key;//
point *next;//
point *pred;//
};
point* make_point()
//
{
point*p=new(point);
p->next=0;p->pred=0;//
char s[50];
cout<<"\nEnter string:";
cin>>s;
p->key=new char[strlen(s)+1];//
strcpy(p->key,s);
return p;
}
point*make_list(int n)
//
{
point *p,*beg;
beg=make_point();//
for(int i=1;i<n;i++)
{
p=make_point();//
//
p->next=beg;//
beg->pred=p;// p
beg=p;// p
}
return beg;
}
.
, . :
top()
pop() ;
push() .
LIFO (last in first out, , ).
, . FIFO (first in first out, , ). :
front() ;
back() ;
pop() ;
push() .
|
|
, , , , . .
:
struct point
{
int data;//
point *left;//
point *right;//
};
. , , . , . , .
, , , . . , . , , .
.
, . .
, . . . , , :
;
, .
.
, , . . . . , .
.
:
: ;
: ;
: .
.
void Run(point*p)
//
{
if(p)
{
< p->data>
Run(p->left);//
Run(p->right);//
}
}
, .
//
Point* first(int d)//
{
Point* p=new Point;
p->key=d;
p->left=0;
p->right=0;
return p;
}
// d
Point* Add(Point*root,int d)
{
Point*p=root;//
Point*r;
// d
bool ok=false;
while(p&&!ok)
{
r=p;
if(d==p->key)ok=true;//
else
if(d<p->key)p=p->left;//
else p=p->right;//
}
if(ok) return p;//,
//
Point* New_point=new Point();//
New_point->key=d;
New_point->left=0;
New_point->right=0;
// d<r->key,
if(d<r->key)r->left=New_point;
// d>r->key,
else r->right =New_point;
return New_point;
}
//
point* Tree(int n,point* p)
{
point*r;
int nl,nr;
if(n==0){p=NULL;return p;}
|
|
nl=n/2;
nr=n-nl-1;
r=new point;
cout<<"?";
cin>>r->data;
r->left=Tree(nl,r->left);
r->right=Tree(nr,r->right);
p=r;
return p;
}
- , .
- .
- .
- .
- .
- , .
- .
- .
- .
- .
- , .
- .
- , .
- .
- .
int. . | char*. . | char. . | |
double. (2, 4, 6 . . .). | char*. 1, 3, 5 . . | int. . | |
int. . | double. . | char*. . | |
int. . | char*. . | double. . | |
char*. . | int. . | char. . | |
char*. . | double. (2, 4, 6 . . .). | int. . | |
double. 0. | int. . | char*. , . | |
char*. 1, 3, 5 . . | int. . | char. . | |
int. . | char*. 1, 3, 5 . . | double. . | |
double. (2, 4, 6 . . .). | char*. . | int . | |
int. . | char*. . | double. . | |
int. . | char*. . | char. . | |
char*. . | double. . | int. . | |
char*. . | int. . | char. . | |
double. 0. | int. (2, 4, 6 . . .). | char*. , | |
char*. 1, 3, 5 . . | int. . | int. . | |
int. . | char*. . | double. . | |
double. (2, 4, 6 . . .). | char*. . | int. . | |
int. . | char*. 1, 3, 5 . . | char. . | |
int. . | char*. . | double. . | |
char*. . | int. . | char*. , . | |
char*. . | double. (2, 4, 6 . . .). | char. . | |
double. 0. | int. . | char*. . | |
char*. 1, 3, 5 . . | int. . | double. . | |
int. . | char*. 1, 3, 5 . . | double. . |
|
|
1. /, .h (, point.h). main() .cpp. #include _.h.
|
|
2. char* new, delete.
3. / .
4. /, , .
5. main() .
6. / , (, k, k , ), , .
7. .
- ( ).
- .
- main().
- .
9