Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C by Kravt ( 15 years ago )
#include <stdio.h>
#include <stdlib.h>
// Задаём структуру (из двух элементов)
struct idea
{
int x,y;
struct idea *next;
};
// Функция, сосздающая список
struct idea *list_new(int a, int b)
{
struct idea *ppr;
ppr=(struct idea*)malloc(sizeof(struct idea));
ppr -> x=a;
ppr -> y=b;
ppr -> next = NULL;
return ppr;
};
// Функция, выводящая элементы списка
struct idea *print(struct idea *log)
{
struct idea *ppr;
ppr=log;
while ( ppr != NULL)
{
printf("%i %in",ppr->x,ppr->y);
ppr=ppr->next;
}
return ppr;
};
// Функция, удаляющая список
struct idea *list_delete(struct idea *log)
{
struct idea *ppr;
while(log -> next != NULL)
{
ppr=log->next;
free(log);
log=ppr;
}
return ppr;
};
//Функция, добавляющая элемент с заданными 2-мя числами в начало списка
struct idea *insert (struct idea *num1, int a, int b)
{
struct idea *ppr;
ppr =(struct idea*)malloc(sizeof (struct idea));
ppr -> next=num1;
ppr -> x=a;
ppr -> y=b;
return ppr;
};
// Функция, удаляющая из списка все элементы с указанными значениями
struct idea *remove_num1(struct idea *num1, int a,int b)
{
struct idea *ppr;
int i;
while(num1->next != NULL)
{
if ( (num1->next -> x == a) || (num1->next -> y == b) )
{
ppr=num1->next;
num1->next=ppr->next;
free(ppr);
}
else num1=num1->next;
}
return num1;
}
// Основное Тело
int main()
{
int N,i,a,b,a1,b1,a2,b2,a4,b4;
struct idea *k;
struct idea *m;
struct idea *root;
struct idea *current;
scanf("%i",&N);
root=(struct idea*)malloc(sizeof(struct idea));
root->next=NULL;
scanf ("%i %i", &a4;, &b4;);
root->x=a4;
root->y=b4;
//root->next=list_new(a4,b4);
current=root;
for (i=2; i<=N; ++i)
{
scanf("%i %i",&a,&b);
root = insert(root,a,b);
//current=current->next;
};
current=root;
/*printf("Proverka function - insert n");
scanf("%i %i",&a1;, &b1;);
*root = insert(current,a1,b1);
current=root; */
print(root);
printf("Proverka function - remove_num1");
scanf("%i %i",&a2;,&b2;);
current = remove_num1(current,a2,b2);
current=root;
k = print(current);
m = list_delete(current);
printf("n");
system("PAUSE");
return 0;
}
Revise this Paste