Код
#include "stdafx.h"
struct Car
{
string name;
int age;
Car*next;
Car*prev;
};
struct DList
{
Car*head;
Car*teil;
};
Car* init(){
Car*newCar = new Car;
cout << "Vvedite dannie" << endl;
cout << "Marka - ";
cin >> newCar->name;
cout << "God vipyska - ";
cin >> newCar->age;
newCar->prev = NULL;
newCar->next = NULL;
return newCar;
}
void addToEnd(Car*head,Car*nw){
while (head->next!=NULL)
{
head = head->next;
}
if (head->next == NULL){
head->next = nw;
nw->prev = head;
}
}
Car*addToBegin(Car*head, Car*nw){
if (head != NULL){
nw->next = head;
head->prev = nw;
nw->prev = NULL;
}
else{
cout << "Error!";
}
return nw;
}
void addToMiddle(Car*head, Car*nw, int a){
for (int i = 0; head->next != NULL || i < a; i++){
if (i == a - 1){
nw->next = head->next;
nw->prev = head;
head->next = nw;
}
head = head->next;
}
}
//Car*errace(Car*head, int N){
//
//}
void print(Car*nw){
if (nw != NULL){
cout << "Marka - " << nw->name << "\tGod vipyska - " << nw->age << endl;
}
}
void printAll(Car*head){
while (head->next!=NULL)
{
print(head);
head = head->next;
}
print(head);
}
int main(){
DList*A = new DList;
cout << "Vvedite kol-vo. N=";
int n;
cin >> n;
A->head = init();
for (int i = 0; i < n - 1; i++){
addToEnd(A->head, init());
}
cout << "Dobavit'?(1-da): ";
int l;
cin >> l;
if (l == 1){
cout << "Skol'ko& ";
int k;
cin >> k;
for (int i = 0; i < k; i++){
A->head = addToBegin(A->head, init());
}
printAll(A->head);
}
_gettch();
return 0;
}