Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
#1

Вставка нового узла в двусвязный список - C++

14.04.2011, 18:08. Просмотров 979. Ответов 1
Метки нет (Все метки)

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


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
#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;
  };
  
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2011, 18:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вставка нового узла в двусвязный список (C++):

Двусвязный список: вставка, удаление, просмотр - C++
Может есть у кого-нибудь двусвязный список с вставкой, удалением, просмотром, доступу к текущему элементу, передвижением вперёд назад (в...

Вставка по номеру в двусвязный кольцевой список - C++
Ошибка в том, что функция не вставляет элемент на первую позицию, вместо этого на последнюю. Что ни так? template &lt;typename T&gt; bool...

Функция: вставка элемента в двусвязный список после заданного - C++
Всем доброго времени суток! Нужно написать функцию вставки элемента в двусвязный список после заданного. Список моего задания состоит из 4...

Вставка нового элемента в линейный односвязный список перед элементом с максимальным значением ключа - C++
Привет, всем. Помогите, разобраться с добавлением нового элемента в линейный односвязный список перед элементом с максимальным значением...

Переделать двусвязный список в двусвязный кольцевой - C++
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это запрограммировать? и второй вопрос как обеспечить вставку...

Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список - C++
спасайте Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список. Информация о работнике...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
14.04.2011, 21:37 #2
Нарисуйте узлы списка и связи между ними на бумаге и всё станет понятно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 21:37
Привет! Вот еще темы с ответами:

Двусвязный список (в конец двусвязного списка добавить другой список) - C++
здравствуйте, подскажите пожалуйста, как в конец двусвязного списка добавить другой список?

Составить двусвязный список на основе класса, объекты которого будут формировать этот список - C++
Составить двусвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные для...

Вставка узла в дерево Windows Explorer - C++
Хочу, чтобы моя прога добавляла в дерево Explorerа свой узел (типа как Панель управления или Сетевое окружение) и при обращении к ней...

Вставка узла в середину двусвязного списка - C++
Уважаемые коллеги, прошу помощи! Изучаю двусвязный список. Вставку в конец и начало я реализовала, удаление из любого места тоже, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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