Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Открытие файла в директории с программой http://www.cyberforum.ru/c-beginners/thread975930.html
По идее эта программа как я понял должна работать ,но она выводит Error .Народ подскажите как открыть файл лежащий не в папке ,в которой работает си. #include <stdio.h> #include <string.h>...
C (СИ) Как преобразовать выражение? Компиляю Ubuntu touch под i9505... Почему в этом коде при компиляции вылетает ошибка? hardware/samsung/libalsa-intf/alsa_pcm.c:911:9: error: return makes pointer from integer without a cast как... http://www.cyberforum.ru/c-beginners/thread975906.html
C (СИ) как создать таблицу на языке С?
как сделать таблицу в исходнике, чтобы она выводилась на экран? вот код. нужно, чтобы в одной колонке был Х , а в другой У. #include <stdio.h> #include <windows.h> #include <locale.h> #include...
Вывод масива C (СИ)
Добрый вечер! Помогите, пожалуйста! Делаю программку, которая обрабатывает массив. Массив заполняется через функцию random. Если сразу ставить, чтобы генерировал и выводил массив на экран - то...
C (СИ) четные числа меньше 24, и их квадраты на экран http://www.cyberforum.ru/c-beginners/thread975846.html
Написать программу, которая выводит четные числа меньше 24, и их квадраты на экран.
C (СИ) Структурированная программа Помогите написать программу, которая проверяет, можно ли представить число x в виде 3^y*(3*z+1) для некоторых y и z. подробнее
VEINHORN
543 / 92 / 49
Регистрация: 16.12.2011
Сообщений: 317
13.10.2013, 18:51 0

Ошибка в коде из методички. Работа с двусвязным списком

13.10.2013, 18:51. Просмотров 471. Ответов 5
Метки (Все метки)

Ответ

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
typedef struct spis
{char data[20];
  struct spis *v1; // v1 – указатель на предыдущую структуру
  struct spis *v2; // v2 – указатель на последующую структуру
} spis;
void create(void); // создание
void list(spis *); // просмотр
void del(void); // удаление
struct spis *head,*tail; // указатели на начало и конец списка
int main()
{
  fflush(stdin);
  fflush(stdout);
  create();
  list(head); // просмотр с начала списка
  list(tail); // просмотр с конца списка
del();
list(head);
free(head);
}
void create(void)
{spis *p,*pred;
  pred=NULL;
  do { p=(spis *)malloc(sizeof(spis));
    printf("Фамилия: "); gets(p->data);
    p->v1=pred;
    if (pred != NULL)
      pred->v2=p;
    else
      head=p;
    pred=p;
    puts(" Закончить - <esc>");
}
while (getch()!=27);
  tail=p;
  tail->v2=NULL;
}
void list(spis *p)
{if (p==head)
  while (p != NULL)
    {puts(p->data);
      p=p->v2;
    }
   else if (p==tail)
  while ( p!= NULL)
  {puts(p->data);
    p=p->v1;
  }
  else
    puts("Неверный адрес ");
    getch();
  }
void del(void)
{struct spis *p,*temp;
char f[20]; // f[20] – Строка для удаляемой фамилии
  fflush(stdin);
  fflush(stdout);
  printf("Фамилия: ");gets(f);
  p=head;
  while (p!=NULL)
    {if (strcmp((p->data),f)==0) // если найдена заданная фамилия
    {if (p==head) // если найденная запись - первая
        {head=p->v2;
          head->v1=NULL;
          free(p);
          p=head;
        }
       else if (p==tail) // если найденная запись - последняя
      {tail=p->v1;
        tail->v2=NULL;
        free(p);
        p=tail;
      }
      else // удаление из средины списка
      {p->v2->v1=p->v1;
        p->v1->v2=p->v2;
        temp=p;
        p=p->v2;
        free(temp);
      }
    }
else // если заданная фамилия не найдена – продвигаемся по списку
p=p->v2;
}
}


Вернуться к обсуждению:
Ошибка в коде из методички. Работа с двусвязным списком
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 18:51
Готовые ответы и решения:

Работа с двусвязным списком - создание, просмотр, добавление и редактирование записей
Доброе время суток! Практически моя вторая программа на Си, которую пытаюсь сделать сама. Взяла...

Задача с двусвязным списком. Правильно ли решена?
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;malloc.h&gt; typedef struct node { int data;...

Объясните пожалуйста действия с двусвязным списком типа кольцо
объявляем struct RING { char surname; RING *l, *r; };

Работа с двусвязным нециклическим списком: инверсия списка
Есть программа для работы с двухсвязным списком. Есть проблемы с функцией инверсии списка. Visual...

Работа с двусвязным списком. Проблема с функцией удаления с конца
Есть задача на двусвязный список, но наблюдается непонятная ошибка. Если сделать функцию удаления...

5
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru