Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа1
.CPP#include <stdio.h>
#include <malloc.h>
#include <process.h>
#include <conio.h>
struct Listob
{int info;
Listob *next, *prev;
};
struct List
{Listob *start;
Listob *end;
};
void store(List &lst, int elem)
{Listob *ob=(Listob *)malloc(sizeof(Listob));
if(!ob) {puts (" ЌҐ¤®бв в®з® Ї ¬пвЁ");
exit (1); }
ob->info=elem;
ob->next=NULL;
if(lst.start==NULL)
{ob->prev=NULL;
lst.start=ob;
lst.end=ob; }
else
{ob->prev=lst.end;
lst.end->next=ob;
lst.end=ob; }
}
void print(List lst)
{Listob *x;
printf("\n‘®¤Ґа¦Ё¬®Ґ бЇЁбЄ :");
if (lst.start==NULL)
{printf("\n‘ЇЁб®Є Їгбв"); return;};
printf("\n[");
for(x=lst.start; x!=NULL; x=x->next)
printf("%d ", x->info);
printf("]\n");
}
void deletelast(List &lst)
{Listob *x;
if (lst.end==NULL)
{printf("\n‘ЇЁб®Є Їгбв"); return;};
x=lst.end;
if(lst.end->prev==NULL)
{lst.start=NULL;
lst.end=NULL; }
else
{lst.end=lst.end->prev;
lst.end->next=NULL; }
free(x);
}
void insert(List &lst, int elem, int n)
{int i;
Listob *x,*ob;
x=lst.start;
for (i=1;i<n;i++)
x=x->next;
if(x==NULL)
{ store(lst, elem); return;}
ob=(Listob *)malloc(sizeof(Listob));
if(!ob) {puts (" ЌҐ¤®бв в®з® Ї ¬пвЁ");
exit(1); }
ob->info=elem;
if(x==lst.start)
{ob->next=lst.start;
lst.start->prev=ob;
lst.start=ob;}
else
{ob->next=x;
ob->prev=x->prev;
(x->prev)->next=ob;
x->prev=ob; }
}
void clear(List &lst)
{Listob *x, *y;
for(x=lst.start; x; )
{y=x->next;
free(x);
x=y;
}
lst.start=lst.end=NULL;
}
void main(void)
{int i,n,count,element;
List lst;
lst.start=lst.end=NULL;
clrscr();
printf("\nP Ў®в б бЇЁбЄ®¬ \n");
printf("\n‡ Ї®«ҐЁҐ бЇЁбЄ . ‚ўҐ¤ЁвҐ зЁб«® н«Ґ¬Ґв®ў: ");
scanf("%d", &count);
for(i=0; i<count; i++)
{printf("‚ўҐ¤ЁвҐ %d-© н«Ґ¬Ґв бЇЁбЄ : ", i+1);
scanf("%d", &element);
store( lst, element); }
print(lst);
printf("\n“¤ «ҐЁҐ ваҐе Ї®б«Ґ¤Ёе н«Ґ¬Ґв®ў:");
for (i=0;i<3;i++)
deletelast(lst);
print(lst);
printf("\n‚бв ўЄ н«Ґ¬Ґв ў Ї®§ЁжЁо б § ¤ л¬ ®¬Ґа®¬ ");
printf("\n‚ўҐ¤ЁвҐ ®¬Ґа Ї®§ЁжЁЁ: ");
scanf("%d", &n);
while(n<=0)
{printf("%d-© Ї®§ЁжЁп Ґ бгйҐбвўгв. ‚ўҐ¤ЁвҐ ¤агЈ®Ґ зЁб«®: ",n);
scanf("%d", &n); }
printf("‚ўҐ¤ЁвҐ н«Ґ¬Ґв: ");
scanf("%d", &element);
insert(lst,element,n);
print(lst);
clear(lst);
}
Соседние файлы в предмете Программирование