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

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

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

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

18.09.2013, 12:55. Просмотров 574. Ответов 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2013, 12:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из односвязного списка в двусвязный (C++):

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

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

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

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

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

Заполнение односвязного списка - C++
как ввести данные в список? struct LIST { int data; LIST*next; }; пишу на С++

3
vodilawofer
29 / 27 / 2
Регистрация: 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
185 / 171 / 13
Регистрация: 30.07.2013
Сообщений: 359
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 / 0
Регистрация: 28.04.2013
Сообщений: 21
18.09.2013, 15:08  [ТС] #4
Цитата Сообщение от vodilawofer Посмотреть сообщение
Для двусвязного списка надо еще один указатель внутри структуры

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

Построение односвязного списка - C++
Имеется следующая функция считывающая структуру из файла и создающая односвязный список. Проблема в том, что если в файле &gt; 1 э-та -...

Создание односвязного списка - C++
Доброго времени суток. И так. Имеется задача. Создание односвязного списка и инициализация его с клавиатуры. Совсем запутался. ...

Шаблон односвязного списка - C++
Код: #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; template &lt;typename T&gt; class List { private: struct node...

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


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

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

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