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

Операции со списком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать функцию заполнения массива случайными числами или по определенной формуле http://www.cyberforum.ru/cpp-beginners/thread1192119.html
Подскажите, пожалуйста, как прописать функцию заполнения массива (случайными числами или согласно какой-либо математической формуле) в С++?
C++ Не корректно выводится вещественное число double f(double x, int n) { return (fabs(pow(x*x*x-2*x*x+1,(2*n*sin(x))/6))-(x*n)/3); } double F(double x,int n) { double a,s=0; a=x; x=0; while(x<a) http://www.cyberforum.ru/cpp-beginners/thread1192118.html
C++ Шифрование заменой
Нужно провести шифрование текстовой информации заменой части символов. Есть код Паскаль. Помогите, пожалуйста const txt1='Privet Privet'#2; txt2='Shifrovanie textovoy informacii zamenoy chasti simvolov'; var I:byte; C:char; Line:string; ShiftTab:array of byte;
C++ Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе)
Вывести на экран сообщение в зависимости от введенного значения оценки (по десятибалльной системе), например: оценки 1, 2 - плохо, 3, 4 и 5 - удовлетворительно, и т.д., иначе – неправильный ввод #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int n; cout<<"введите оценку\n"; cin>>n;
C++ Разобрать пример с Random http://www.cyberforum.ru/cpp-beginners/thread1192093.html
господа программисты! разъясните ка что тут происходит?? я не въезжаю... рандом от минус бесконечности и до плюс?? data = ((double)rand() / (double)RAND_MAX) - ((double)rand() / (double)RAND_MAX);
C++ Определить, есть ли в последовательности хотя бы одно число, кратное 7 не лезет в голову программа,хоть убейте,остальное всё сделал,осталась одна,помогите,будь добры. Дана непустая последовательность целых чисел, оканчивающаяся числом - 1 . Определить, есть ли в последовательности хотя бы одно число, кратное 7. В случае положительного ответа определить порядковый номер первого из них. uses crt; var a,i,n:integer; begin clrscr; writeln('Введите... подробнее

Показать сообщение отдельно
lev_
2 / 2 / 0
Регистрация: 26.05.2014
Сообщений: 119
29.05.2014, 07:07     Операции со списком
когда вставляю новый элемент, то почему-то вставляется на начало а не на заданную позицию. и при удалении тоже - удаляется первый элемент хотя я задаю другой индекс. может где-то ошибка?
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
template<class T> class list
{
    struct node
    {
        T data;             //Значение
        node *next;         //Указатель на следующий элемент
    };
    node *head;             //Указатель на фиктивный элемент
    node *tile;             //Указатель на конечный элемент
    int size;                   //Размер вектора
    int sum_oper;               //Число операций
public:
    list();                 //Конструктор
    list(list<T> &a);               //Конструктор копирования
    ~list();                    //Деструктор
    void Add(T &new_data);          //Добавление элемента
    void Print();               //Вывод
    void RandList(int, int);            //Заполнить случайно
    bool Insert(T &ins_data, int num);      //Вставка
    bool Delete(int num);               //Удаление
    bool DelVal(T &val);            //Удаление по значению
    T&   Get(int);          //Чтение элемента по индексу
    bool Change(T &ch_data, int num);       //Запись элемента по индексу
    void Clear();               //Очистка списка
    int  Search(T &val);            //Поиск элемента по значению
    int  SumCount()     //Опрос количества операций
    {
        return sum_oper;
    };
    int  Size()       //Опрос размера списка
    {
        return size;
    };      
        list<int> l;
        int data;
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
//Вставка нового элемента в позицию
template<class T>
bool list<T>::Insert(T &ins_data,int num)
{
    sum_oper = 0;
    int i = 0;
    node *new_node = new node;
    if(num > size+1 || num <= 0)
    {
        return false;
    }
    node *cur = head;
    for(node *cur = head; i!=num-1; cur=cur->next)
    {
        i++;
        sum_oper++;
    }
    new_node->data = ins_data;
    new_node->next = cur->next;
    cur->next = new_node;
    size++;
    if(num == size) tile = new_node;
    return true;
}
//-------------------------------------------------------------------------------------------------
//Удаление элемента из позиции
template<class T>
bool list<T>::Delete(int num)
{   
    sum_oper = 0;
    int i = 0;
    if(num > size || num<=0)
    {
        return false;
    }
    node *cur = head;
    for(node *cur = head; i!=num-1; cur=cur->next)
    {
        i++;
        sum_oper++;
    }
    node *dcur = cur->next;
    cur->next = dcur->next;
    delete dcur;
    size--;
    return true;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru