#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
typedef struct Spis
{
int data;
char string[100];
struct Spis *next;
}ITEM;
int add();
void display();
inf();
FILE *one;
ITEM *head=NULL,*last,*p,*tmp;
int numb=2;
int main()
{
char key;
clrscr();
if(one=fopen("1.txt","r")==NULL)
{
printf("it's a trap");
getch();
}
while(1)
{
clrscr();
puts("1 - добавить элемент");
puts("2 - удалить элемент");
puts("3 - найти элемент");
puts("4 - вывести список");
puts("ESC - выйти");
key=getch();
switch(key)
{
case '1':
add();
break;
case '2':
del();
break;
case '3':
search();
getch();
break;
case '4':
display();
getch();
break;
case 27:
return 0;
}
}
p=head;
while(p)
{
last=p->next;
free(p);
p=last;
}
fclose(one);
return 0;
}
int add()
{
printf("введите данные:");
if(head==NULL)
{
p=(ITEM*)malloc(sizeof(ITEM));
p->data=1;
p->next=NULL;
head = p;
last = p;
}
else
{
tmp =(ITEM*)malloc(sizeof(ITEM));
tmp->next=NULL;
p->next=tmp;
tmp->data=numb;
numb++;
last=tmp;
p=p->next;
}
}
int inf()
{
char a[20];
int n=0;
p=head;
while(a[n]!='\n')
{
while((a[n]=fgetc(one))!=' ' && a[n]!='\n')
n++;
strcpy(p->string,a);
p=p->next;
}
return 0;
}
void display()
{
p=head;
if(p==NULL)
printf("список пуст");
else
printf("список:\n");
while(p)
{
printf(" %d %s\n", p->data, p->string);
p=p->next;
}
p=last;
}