Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 18:10   #1
pavlintseva
 
Регистрация: 17.02.2011
Сообщений: 7
По умолчанию Работа с двусвязным списком

процедура вставки нового узла. Вот сделала вставку в голову и в хвост. но проблема с процедурой вставки узла после текущего узла и перед ним. Помогите разобраться.

Код:

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstring>
 #include <math.h>
using namespace std;
 
 
struct stud {
  char fio [30]; // ФИО студента
  char gryppa [50]; // Название группы
  stud *prev;       // Указатель на предыдущую запись
  stud *next; // Указатель на следующую запись    
}; 
 
 
stud *first = NULL; // Указатель на начало списка
stud *last = NULL;  // Указатель на конец списка  
int List (void);  
 
void AddItem1 ()// добавление в голову
{
  stud*db=new stud;
 
  // создаем новую структуру-выделяем память
 
  // заполняем её
  cout << "Vvedite familiu: ";
  cin >> db->fio;
  cout << "Nazvanie gryppi: ";
  cin >> db->gryppa;
  // добавляем в список
  db->next = NULL;//обнуляем указатель на след элемент
  
  if(first != NULL)
  {db->next = first;
  first->prev= db;
  first=db;
  }
  
  else
  {db->prev = NULL;
    db->next = NULL;
    first = db;}
}  
  void AddItem2 (void)// в хвост
{
  stud*db=new stud;
 
  // создаем новую структуру-выделяем память
 
  // заполняем её
  cout << "Vvedite familiu: ";
  cin >> db->fio;
  cout << "Nazvanie gryppi: ";
  cin >> db->gryppa;
  // добавляем в список
  db->next = NULL;//обнуляем указатель на след элемент
  if (last != NULL) // если список уже существует
  {
    db->prev = last;
    db->next = NULL;
    last->next = db;
    last = db;
  }
  
  else              // если список ещё не создан
  {
    db->prev = NULL;
    db->next = NULL;
    first = db;
    last = db;
  };
  
}
pavlintseva вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с динамическим списком Medik07 Общие вопросы C/C++ 2 08.03.2011 20:54
Калькулятор на С++ с двусвязным списком Anastassija Общие вопросы C/C++ 4 24.06.2010 11:20
Работа со списком Delphi novi4ok_Delphi Помощь студентам 3 11.03.2010 15:28