Как отредактировать узел? и как УДАЛИТЬ измененный узел? - PullRequest
0 голосов
/ 02 марта 2011

Как редактировать узел?

Я использовал recipe_id в качестве первичного ключа. В моем разделе редактирования мне нужно сначала найти recipe_id, если он существует, программа позволит пользователю редактироватьrecipe_id она ввела.Я не знаю, как это сделать.

Как удалить узел?

, как и мой вопрос выше, я использовал recipe_id, чтобы изменить, какой узел будет редактироваться и удаляться ... пожалуйста, помогите мне ..

Другое дело, я не знаю, как отобразить все данные в моем связанном списке без каких-либо ошибок во время выполнения .. - _ -

спасибо!:)) -маан: D

1 Ответ

0 голосов
/ 02 марта 2011

Похоже, вы используете связанный список в качестве базы данных рецептов.Редактирование узла должно быть простым.Просто бегите по списку, пока не найдете соответствующий recipe_id, затем отредактируйте поля с помощью нового пользовательского ввода.

NODE *tmp = list;
while(tmp && tmp->recipe_id != recipe_id_to_edit)
  tmp = tmp->next;
if(tmp) {
  /*  edit node here  */
}

Удаление узла можно сделать следующим образом.

NODE *tmp = list;
if(tmp) {
  if(tmp->recipe_id == recipe_id_to_delete) {
    list = list->next;
    free(tmp);
  }
  else {
    while(tmp->next && tmp->next->recipe_id != recipe_id_to_delete)
      tmp = tmp->next;
        if(tmp->next) {
      NODE *to_free = tmp->next;
      tmp->next = tmp->next->next;
      free(to_free);
    }
  }      
}

Отображение данных в списке во время выполнения должно быть простым, например

NODE *tmp = list;
while(tmp) {
  printf("%s %s\n", tmp->field1, tmp->field2 );
  tmp = tmp->next
}

Этопри условии, что ваш список односвязно связан с NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...