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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить матрицу, от левого верхнего угла по диагонали: вправо - вверх http://www.cyberforum.ru/cpp-beginners/thread844965.html
Помогите пожалуйста, уже второй день мучаюсь...
C++ Ввод-вывод из файла Товарищи форумчане, помогите разобраться с выводом из файла на экран. Забить в файл у меня получилось,авот вывести никак. Вот часть кода: #include <conio.h> #include <windows.h> #include <iostream> #include <stdio.h> /*Сформировать файл из целых чисел, вводимых с клавиатуры. Напечатать его. Переставить компоненты файла так, чтобы сначала шли все компоненты, являющиеся четными числами, а... http://www.cyberforum.ru/cpp-beginners/thread844932.html
Как удалить столбцы C++
Нужна программа , которая удаляет столбцы из двумерного массива , запрашивая номер столбца по одному.
C++ суммарное смещение в новый массив
Доброго всем дня! Прогуглил,но не нашёл искомого. Суть такова:имеется массив,например , из 4 элементов(заполненный). Имеется еще массив, размерностью на 1 менее, т.е. 3. И необходимо, чтобы элементы второго массива были суммой элементов, стоящих перед соответствующим индексом массива первого. ДОСТУПНЕЕ НА КАРТИНКЕ: http://s020.***********/i707/1304/52/684bb0d4fdc0.jpg
C++ Вычислить среднеарифметическое нечетных элементов массива http://www.cyberforum.ru/cpp-beginners/thread844886.html
Дан одномерный массив, состоящий из N целочисленных элементов. Заполнить массив случайными числами. Вычислить среднеарифметическое нечетных элементов массива.
C++ Вычислить произведение не нулевых элементов массива Дан одномерный массив, состоящий из N целочисленных элементов. Заполнить массив случайными числами.Вычислить произведение не нулевых элементов массива. подробнее

Показать сообщение отдельно
Lonter
1 / 1 / 0
Регистрация: 22.04.2013
Сообщений: 45
22.04.2013, 10:56     Выручайте! Нужно переделать прогу под двусвязный список.ничего не понимаю)
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <iostream>
#include <conio.h> 
struct Node
{
    int memSize;
    Node *Next;
};
Node *BegList;
using namespace std;
void MakeList(int *Sz, int n)
{
    Node *Curr,*Prev;
    int i;
    BegList=new Node;
    BegList->Next =NULL;
    BegList->memSize=Sz[0];
    cout << Sz[0] << endl;
    Prev=BegList;
    for (i=1; i<n; i++)
    {
        Curr=new Node;
        Prev->Next =Curr;
        Curr->Next =NULL;
        Curr->memSize=Sz[i];
        cout << Sz[i] << endl;
        Prev=Curr;
    }
};
 
long searchBlock(long sz)
{
    Node *Curr, *Prev, *Nxt;
    long szBlock;
    Curr=BegList;
    Prev=NULL;
    while(1)
    {
        if (Curr == NULL) 
        {
            szBlock=-1;
            break;
        }
        if (Curr->memSize >= sz) // Нашли...
        {
           
                   Nxt=Curr->Next;
                   szBlock=Curr->memSize;
           
                  if (Curr == BegList) // Блок первый
           {
               if (Nxt == NULL) // и единственный
               {
                   delete BegList;
                   cout << "Now list is empty" << endl;
                   break;
               }
               else
               {
                   delete BegList;
                   BegList=Nxt;
                   break;
               }
 
           }
           else // блок не первый
           {
               if (Nxt == NULL)  // последний
               {
                   delete Curr;
                   Prev->Next=NULL;
                   break;
               }
               else
               {
                   delete Curr;
                   Prev->Next=Nxt;
                   break;
               }
           }
           
        }
        Prev=Curr;
        Curr=Curr->Next;
    }
    return  szBlock;
};
void DeleteList()
{
    Node *Curr,*Next;
    Curr=BegList;
    while (1)
    {
      Next=Curr->Next;
      delete Curr;
      if (Next == NULL) break;
      Curr=Next;
    }
};
   
// Распечатать список
 
void PrintList()
{
    Node *Curr,*Next;
    Curr=BegList;
    while (1)
    {
      Next=Curr->Next;
      cout << Curr->memSize << endl; 
      if (Next == NULL) break;
      Curr=Next;
    }
};
           
int main(int argc, char* argv[])
{
    int szB[]={100,200,300,400,500};
    long bs,bq;
    cout << "Initial List:" << endl;
    MakeList (szB,sizeof(szB)/sizeof(int));
    cout << endl << "Enter block size: ";
    cin >> bs;
    if ((bq=searchBlock(bs)) > 0)
        cout << "Block (" << bq << " ) is found" << endl;
    else
        cout << "Block not found!" << endl;
    cout << endl;
    PrintList();
    DeleteList();
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru