Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
squi
0 / 0 / 1
Регистрация: 28.04.2013
Сообщений: 25
#1

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

18.09.2013, 12:55. Просмотров 673. Ответов 3
Метки нет (Все метки)

Помогите, кусок переделать в двусвязный список.
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
#include <iostream>
using namespace std;
    
struct Node 
{
    int data;
    Node *next;
};
void print (Node *); 
 
int main()
{
    setlocale (LC_ALL,"Russian");
   
    Node *head=NULL;                          
    Node *put, *spisok, *last;                
    int nomer, vstavka, i, element;         
    
    cout << "Введите количество элементов: ";
      cin >> element;
   
    for (i=0; i<element; i++)
    {
        spisok=new Node;                           
     cout << "Элемент "<<i+1<<": ";
        cin>>spisok->data;                        
        spisok->next=NULL;                        
        
         if (head==NULL)                     
            head=spisok;                         
       
        else                               
        last->next=spisok;          
             last=spisok;                            
   }
 
    print (head);
 
system ("pause");
return 0;
}

http://www.cyberforum.ru/cpp-beginners/thread1326846.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2013, 12:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Из односвязного списка в двусвязный (C++):

Сделать двусвязный цикл из односвязного. Задача Джозевуза
Добрый день. Встала задача сделать программу для реализации считалки Джозефуза...

Удаление элементов из односвязного списка списка
Привет всем знатокам, суровым программистам и профессионалам своего дела. Засел...

Вывод односвязного списка
Выводи лишь последний элемент, в чёи ошибка? Подскажите пожалуйста #include...

Шаблон односвязного списка
Код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; template...

Печать односвязного списка
Доброго времени суток. Выполняя задание возникла трудность. Использую метод для...

3
vodilawofer
29 / 27 / 1
Регистрация: 27.09.2012
Сообщений: 123
18.09.2013, 13:15 #2
Для двусвязного списка надо еще один указатель внутри структуры

C++
1
2
3
4
5
6
struct Node 
{
    int data;
    Node *next;
    Node *prev; // указатедль на предыдущий элемент
};
0
Fyret
200 / 186 / 45
Регистрация: 30.07.2013
Сообщений: 392
18.09.2013, 13:19 #3
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
#include <iostream>
    
struct Node 
{
    int data;
    Node* previous;
    Node* next;
};
 
void print(const Node* node)
{
    while( node )
    {
        std::cout << node->data << " ";
        node = node->next;
    }
    std::cout << std::endl;
}
 
int main()
{
    Node* head = NULL;
    Node* tail = NULL;
    int elements;         
    
    std::cout << "Enter number of elements: ";
    std::cin >> elements;
   
    for( int i = 0; i < elements; ++i )
    {
        Node* newNode = new Node;                           
        std::cout << "Element " << i+1 << ": ";
        std::cin >> newNode->data;
        newNode->next = NULL;
        newNode->previous = tail;
        
        if( !head )
        {
            head = tail = newNode;
        }
        else
        {
            tail->next = newNode;
            tail = newNode;
        }
    }
 
    print( head );
    
    while( head )
    {
        tail = head;
        head = head->next;
        delete tail;
        tail = NULL;
    }
 
    return 0;
}
0
squi
0 / 0 / 1
Регистрация: 28.04.2013
Сообщений: 25
18.09.2013, 15:08  [ТС] #4
Цитата Сообщение от vodilawofer Посмотреть сообщение
Для двусвязного списка надо еще один указатель внутри структуры

C++
1
2
3
4
5
6
struct Node 
{
    int data;
    Node *next;
    Node *prev; // указатедль на предыдущий элемент
};
как образовать структуру двусвязного списка я знаю, мне нужно переделать кусок кода под него.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2013, 15:08
Привет! Вот еще темы с решениями:

Построение односвязного списка
Имеется следующая функция считывающая структуру из файла и создающая...

Идеология односвязного списка
Здарова! Посмотрел, что такое односвязный список и возникли естественно...

Сортировка односвязного списка
Добрый день форумчанам! Есть задача но не знаю как написать ее так как не знаю...

Сортировка односвязного списка
Доброго времени суток. Третий день пытаюсь понять как мне отсортировать...


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

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

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