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

Как создать двусвязный список? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Наследование и полиморфизм.Виртуальные функции http://www.cyberforum.ru/cpp-beginners/thread299325.html
Помогите пожалуйста программу написать. Я новичок и еще не во всем разобрался!!! Задание: Заданы названия базовых и производных классов. Необходимо разработать поля и методы, наследуемые из базового класса, и собственные компоненты производных классов. Базовый класс может быть абстрактным. Наследование может быть собственным. Первый базовый класс - документ предприятия.Во Втором базовом...
C++ Обработка исключений Помогите написать программу пожалуйста!!!! Я незнаю как правильно написать!!! Задание: Для каждого варианта необходимо создать три массива a, b и с размерами соответственно n1, n2, и n3 (n1!=n2!=n3).В массив a занести значения функции f(x) (при возникновении исключения заносить нули). Массив b заполнить случайными числами (среди них должны быть и отрицательные чиса и нули). Предусмотреть и... http://www.cyberforum.ru/cpp-beginners/thread299323.html
Обратная польская запись C++
программа "Стековая машина", она работает только с бинарными операциями,нужно чтобы работала еще с унарными операциями(синус,косинус итд) Еще: в программе можно вводить только по одному латинскому символу(например : а +b - c) .Что нужно поменять,чтоб можно было вводить не только по одному символу(н-р: ab+cdk-ghrt) Посоветуйте. Вот код: #include <iostream.h> #include <stdio.h> #include...
C++ Выделение динамической памяти указателю в локальной функции
Собственно, я не до конца понимаю, что происходит, поэтому прошу если кто может как можно доходчивее пояснить. Упрощенная версия кода приблизительно такая: void Initialize(char * cptr) { cptr = new char; } void main() { char * ptr;
C++ Вычисление кол-ва предложений в строке http://www.cyberforum.ru/cpp-beginners/thread299295.html
Подскажие пожалуйста как написать программу,которая подсчитывает количество предложений в строке. Считать разделителем и точку и пробел. Организовать вычисления в отдельном потоке. Заранее спасибо...
C++ Очень срочно , через 2 дня сдача) (композиция, наследование) Разработать и реализовать диаграмму классов для описанных объектов предметной об-ласти, используя механизмы наследования и/или композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных дан-ных. Даны: Объект символ, умеющий печатать свое значение и отвечать на запрос о значении сво-его символьного поля. Объект «строка» переменной длины,... подробнее

Показать сообщение отдельно
JmBeats
0 / 0 / 0
Регистрация: 17.05.2011
Сообщений: 10
19.05.2011, 08:15     Как создать двусвязный список?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void List::addToList(string data)   //реализация функции добавления
{
    Element *temp = new Element;        //создается временный элемент
    if(pHead == NULL)           //если это первый элемент, то
    {
temp->pred = NULL;      //обнуляем указатель на предшествующий 
//элемент т.к. его нет
        temp->next = NULL;      //то же самое с последующим элементом
                pHead = temp;       //"голова" указывает на созданный элемент
    }
else                    //если не первый, то
                pPrev->next = temp;     //предыдущий указывает на него
 
    temp->data = data;          //копируем данные
    temp->next = NULL;  //последующего элемента нет (добавляем же в конец)
    temp->pred = pPrev;     //указываем на предыдущий элемент, на который «нацелен» pPrev
    pPrev = temp;     //а теперь хвостовой элемент указывает на последний (добавленный)
    countElem++;      //увеличиваем счетчик элементов в списке
}
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
void List::printList()              //реализация функции вывода на экран списка
{
    Element *pTemp = pHead;     //создается временный элемент
 
    if (pHead == NULL)          //если список пуст, то 
    {
        cout << "Spisok pust";  //выводим соответствующее сообщение
    }
    else                    //если все такие он не пуст, то
    {
        cout << "Spisok ->: ";      
        while(pTemp != NULL)    //пока врем. элем. не будет указывать на хвост
        {
            cout << pTemp->data + ' ';  //выводим данные элемента
            pTemp = pTemp->next;    //и переходим на следующий за ним элем.
        }
    cout << endl;
}
 
 
void List::printElement(int numb)           //реализация функции вывода на экран списка
{
 
Element *pTemp = pHead;     //создаем временный элемент
 
if ((numb>countElem) || (numb<1))    //если указанный элемент не существует, то
        cout << "Takogo elementa net" << endl;  //выводим предупреждение на экран
    else
    {
        for(int i=1; i!=numb; i++)  //иначе, переходим до этого элемента
        {
            pTemp = pTemp->next;
        }
cout << "Element " << numb << " :" << pTemp->data << endl;
 
Текущее время: 08:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru