// Justin C. Miller
// University of Wisconsin Oshkosh
// Made for: http://www.geocities.com/neonprimetime.geo/index.html
// Date: 2001
// Borland Builder 4.0
#include
#include
struct flight_passenger{
long reservation_number ;
string last_name ;
string first_name ;
long telephone_number ;
double fare ;
flight_passenger *link ;
};
typedef flight_passenger *Nodeptr;
void insertion(Nodeptr&) ;
void deletion(Nodeptr&, long) ;
void check_memory(Nodeptr head)
{
if(head == NULL)
{
cout << "There is insufficient memory" << endl ;
exit(1) ;
}
}
int main()
{
Nodeptr head = new flight_passenger ;
check_memory(head) ;
head = NULL ;
for(int x = 0 ; x < 2 ; x++)
insertion(head) ;
long res_number ;
for(int y = 0 ; y < 2 ; y++)
{
cout << "Enter reservation number to delete" << endl ;
cin >> res_number;
deletion(head, res_number) ;
}
return 0 ;
}
void insertion(Nodeptr &head)
{
Nodeptr temp_ptr = new flight_passenger ;
check_memory(temp_ptr) ;
cout << "Enter reservation #" << endl ;
cin >> temp_ptr->reservation_number ;
cout << "Enter last name" << endl ;
cin >> temp_ptr->last_name ;
cout << "Enter first name" << endl ;
cin >> temp_ptr->first_name ;
cout << "Enter telephone number (just the digits, no -)" << endl ;
cin >> temp_ptr->telephone_number ;
cout << "Enter fare " << endl ;
cin >> temp_ptr->fare ;
if(head== NULL)
{
temp_ptr->link = head ;
head = temp_ptr ;
}
else
{
Nodeptr current, previous ;
current = new flight_passenger ;
check_memory(current) ;
previous = new flight_passenger ;
check_memory(previous) ;
current = head ;
while(((current->reservation_number) > (temp_ptr->reservation_number )) && (current->link != NULL))
{
previous = current ;
current = current->link ;
}
previous->link = temp_ptr ;
temp_ptr->link = current ;
}
}
void deletion(Nodeptr &head, long reservation)
{
Nodeptr current, previous ;
current = new flight_passenger ;
check_memory(current) ;
previous = new flight_passenger ;
check_memory(previous) ;
current = head ;
if(head->reservation_number == reservation)
{
head = (head->link) ;
delete current ;
}
else
{
while((current->reservation_number != reservation)&&(current->link != NULL))
{
previous = current ;
current = current->link ;
}
if(current == NULL)
cout << "Number not found!" << endl ;
else
{
previous->link = current->link ;
delete current ;
}
}
return ;
}
               (
geocities.com/neonprimetime.geo/cpp)                   (
geocities.com/neonprimetime.geo)