Удаление элемента из односвязного списка - C (СИ) (77497)

Узнай цену своей работы

Формулировка задачи:

Почему не работает функция удаления идентификатора? Как ее можно переделать?
#include"stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
 
void print(struct spisok *p);
struct spisok
    {
        char id[8];
        struct spisok *next;
    };
 
struct spisok* vvod(struct spisok *p, char i[8]);
struct spisok* udalenie(struct spisok *p);

int main()
{
    int i;
    char j[8];

    struct spisok *p,*f;
        p=NULL;

        for(i=0;i<3;i++)
        {
           printf("vvedite identificatori\n");
           gets(j);
          p= vvod(p,j);
        }
        f=udalenie(p);
        print(f);
        getch();
    return 0;
}
struct spisok* vvod(struct spisok *p, char j[8] )
{
 
   struct spisok *pt,*k,*f;
      pt = (struct spisok *) malloc(sizeof( struct spisok));
      strcpy(pt->id, j);
      if(p==NULL || strcmp(pt->id,p->id)<0)
      {
          pt->next=p;
          p=pt;
      }
      else
      {
          k=p;
          while(k!=NULL && strcmp(pt->id,k->id)>=0)
          {
              f=k;
              k=k->next;
          }
          f->next=pt; pt->next=k;
      }

      return p;
}
void print(struct spisok *p)
{
    struct spisok *pt;
    for(pt=p;pt!=NULL;pt=pt->next)
            puts(pt->id);
}
struct spisok* udalenie(struct spisok *p)
{
    char j[8];
    struct spisok *pt,*f,*k;
 
      printf("vvedite identificator kotorii nugno udalit\n");
      gets(j);
      pt=p;
      f=p;
      while(pt->next!=NULL)
      { 
              
              k=pt->next;
            
          if(!strcmp(j,pt->id))
          
              f->next=k;
          if(pt!=p)
              f->next=pt;
          
          pt=pt->next;
      }
      return p;
}

Решение задачи: «Удаление элемента из односвязного списка»

textual
Листинг программы
if(prev) prev->next = pt;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы