list 1. h //
#ifndef _LIST1_ //
#define _LIST1_ //
#include <iostream>
using std::endl;
using std::cout;
//
struct Elem {
int x; //
Elem* next; //
};
// :
//
void add_end(Elem **start, const int& a)
{
Elem *tmp, // ,
*cur; //
tmp = new Elem; //
if (!tmp) { // ,
cout<<" "<<endl;
return;
}
tmp->x = a; //
tmp->next = NULL; //
if (!*start) // ,
*start = tmp; //
else{
//
cur = *start;
while (cur->next) // cur->next 0
cur = cur->next; //
cur->next = tmp; // ,
//
}
return;
}
:
void add_end(Elem **start, const int& a)
. start , . , add _ end start ( ) Elem.
//
void del _ end (Elem * start)
{
Elem *prev, //
*end; //
if (!start){ // ,
cout<<" "<<endl;//
return;
}
if (!start->next){ // ,
delete start; start=NULL; //
return;
}
//
end = start;
while (end->next){ // end->next 0
prev = end; //
end = end->next; //
|
|
}
delete end; //
prev->next = NULL; //
return;
}
//
void print_list(const Elem *start)
{
Elem *tmp; //
if (!start){ // ,
cout<<" "<<endl; //
return;
}
//
tmp = const_cast<Elem *>(start);
while (tmp){ // tmp 0
cout<<tmp->x<<" "; //
tmp = tmp->next; //
}
cout<<endl;
return;
}
//
void del_list(Elem *start)
{
Elem *tmp,
*prev; //
if (!start){ // ,
cout<<" "<<endl; //
return;
}
//
tmp = start;
while (tmp){ //
prev = tmp; //
tmp = tmp->next; //
delete prev; //
}
start = NULL; //
return;
}
# endif _ LIST 1_
List 1. cpp //
# include " list 1. h " //
// <iostream>
Int main()
{
Elem * start = NULL; //
for (int i =0; i <5;++ i) // 5
add_end(&start, i+1);// : 1, 2, 3, 4, 5
print _ list (start); //
del _ end (s tart); //
del_end (start); //
print_list(start); //
system("pause");
del_list (start); //
return 0;
}
3.5.
3.5 MS Visual Studio
: