Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы / C++.Ашарина / !Сделанные / Lab3 / Var11
.cpp#include<dos.h>
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct list
{
int info;
list *next;
};
void New(list* &head, list* &tail)
{
head=new list;
head->info=random(10);
head->next=NULL;
tail=head;
}
void Add(list* &tail)
{
list *T;
T=new list;
T->info=random(10);
T->next=NULL;
tail->next=T;
tail=T;
}
//Checks for element l in list head-tail
char Check(list *head, list *tail, int l)
{
list *T;
T=head;
while (T!=tail)
{
if (T->info==l)
return 1;
T=T->next;
}
if (tail->info==l)
return 1;
return 0;
}
char Insert(list *head, list* &tail, int l, list *head1, list* &tail1)
{
list *T, *P;
int p=Check(head1,tail1,l);
if (!p)
return 0;
T=head;
while (T!=tail)
{
if (T->info==l)
{
tail1->next=T->next;
T->next=head1;
return 1;
}
T=T->next;
}
if (tail->info==l)
{
tail->next=head1;
tail=tail1;
return 1;
}
return 0;
}
void Print(list *head, list *tail)
{
list *T;
T=new list;
T=head;
while (T!=tail)
{
printf("%d ",T->info);
T=T->next;
}
printf("%d ",tail->info);
}
void main()
{
clrscr();
randomize();
list *head1, *tail1;
list *head2, *tail2;
int i, n1, n2, L;
printf("\nEnter number of elements in 1st list: ");
scanf("%d",&n1);
New(head1,tail1);
for (i=1;i<=n1-1;i++)
Add(tail1);
printf("1st list: ");
Print(head1,tail1);
printf("\nEnter number of elements in 2nd list: ");
scanf("%d",&n2);
New(head2,tail2);
for (i=1;i<=n2-1;i++)
Add(tail2);
printf("2nd list: ");
Print(head2,tail2);
printf("\nEnter L: ");
scanf("%d",&L);
i=Insert(head1,tail1,L,head2,tail2);
if (i)
{
printf("New list: ");
Print(head1,tail1);
}
else
printf("Element not found");
getch();
}
Соседние файлы в папке Lab3