Welcome, guest! Login / Register - Why register?
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&#40;"PAUSE"&#41;; 

  return 0;
}

 

Revise this Paste

Your Name: Code Language: