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

Добавление и удаление элементов из двусвязного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс множество http://www.cyberforum.ru/cpp-beginners/thread1047705.html
Реализован класс множество. В алгоритме не работают 2 функции, объединение и разность множеств. #include <iostream> #include <conio.h> #include <string.h> using namespace std; //Объявление класса "Множество": template <class T>
C++ рекурсия Задача состоит в том, чтобы посчитать по формуле тейлора значение функции с точностью е. Почему не работает? #include <iostream> #include <stdio.h> #include <conio.h> #include <math.h> using namespace std; double taylor(double x, double e, int n); void main() http://www.cyberforum.ru/cpp-beginners/thread1047703.html
Составить таблицу ступенчатой функции C++
1. Составить таблицу ступенчатой функции 1.5<=a<=3 ; da=0.3 ; 6<x<=10 ; dx=2 ; Найти Wmax и определить a,x, при которых оно определяется. sqrt(x-a), если x>a W = sin(a), если x=a ax/cos((ax-1)^2), если x<a одна тема - одна задача, читайте правила форума Спасибо заранее. Не прошу конечно сделать все, но помогите хоть с чем то. Правду, очень нужно.
C++ напишите программку упорядочивающую массив строк в порядке возрастания их длины методом простых вставок
Написать программу упорядочивающую массив строк в порядке возрастания их длины методом простых вставок. Использовать указатели на строки.
C++ Разработать рекурсивную функцию для вывода на экран следующей картинки http://www.cyberforum.ru/cpp-beginners/thread1047672.html
Дано натуральное число п. Разработать рекурсивную функцию для вывода на экран следующей картинки: 1 222 33333 ... 33333 222 1
C++ Дан двумерный массив целых чисел. Вычислить количество четных чисел среди элементов, встречающихся в массиве ровно 3 раза Кто может, помогите пожалуйста:) подробнее

Показать сообщение отдельно
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
18.12.2013, 23:36     Добавление и удаление элементов из двусвязного списка
Разбираю списки. Посмотрите код правильно ли я все понимаю?))) путаюсь с указателями. может можно проще чтото сделать?

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
struct st {
    int n;                      //полезные данные
    st* next,prev;              //указатели на предыдущий и следующий элементы
};
 
class list {
    st* head;                   //начало списка
    st* tail;                   //конец списка
    int size,max_size;          //количество элементов и максимально возможное
public:
    void Add(int x) {
        if (size<max_size) {
            st* temp=new st;    //новый элемент
            temp->n=x;          //запись данных в новый элемент
            st* p=new st;       //хранилище под старый последний элемент
            p=tail;             //запись старого последнего в хранилище
            tail=temp;          //хвост указывает на новый элемент
            tail->next=NULL;    
            tail->prev=p;       
            size++;
        }
    }
    void Clear() {              //неправильно?? в памяти останется мусор?
        Head=Tail=NULL;
        size=0;
    }
    
    void Del() {
        st* temp=new st;        //хранилище под текущий хвост
        tail=tail->prev;        //перенос хвоста на предпоследний элемент
        delete temp;            //удаление хранилища
        size--;
    }
    void Clear() {              //теперь правильно?
        while (tail!=NULL)
            Del();
    }
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru