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

Написать программу, которая реализует круговой список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести на экран элемент, расположенный в правом нижнем углу массива http://www.cyberforum.ru/cpp-beginners/thread1166651.html
Дан двумерный массив А) вывести на экран элемент, расположенный в правом нижнем углу массива. Б) вывести на экран элемент, расположенный в левом верхнем углу массива.
C++ Передача в функцию через указатели Компилятор говорит, что что-то не так с передачей max и min. Что? #include <stdio.h> #include <iostream> #include <string.h> #define MAX 100 using namespace std; char** creat(char**); int search (char**,int*,int*); //void swap (char , int max, int *min); http://www.cyberforum.ru/cpp-beginners/thread1166641.html
Как реализовать хранение длинных чисел, их сложение и вычитание? C++
Бесконечно длинных чисел.
Объединение пересечение и разность C++
нужно только подправить код для вышеупомянутых задач в конце нужно вывести: объединение: пересечение: разность: и если возможно, дополните комментариями надеюсь на понимание. заранее спасибо #include<iostream>
C++ Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? http://www.cyberforum.ru/cpp-beginners/thread1166602.html
Здравствуйте :) Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? TimerSec = 59; TimerMin = 6; for(int i = TimerSec; i > 0 && TimerMin >= 0; i--) { TimerSec = TimerSec - 1; Sleep(1000);
C++ Сначала вывести все цифры строки, а затем все остальные литеры Помогите пожалуйста с заданием Задан текст, заканчивающийся точкой. Вывести на экран сначала все цифры, входящие в него, а затем все остальные литеры. При написании программы нельзя пользоваться стандартными функциями обработки строк. подробнее

Показать сообщение отдельно
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 401
06.05.2014, 19:54  [ТС]     Написать программу, которая реализует круговой список
Мне подсказали, что бы список был круговым нужно добавить foot->next = head. А куда я не знаю. Помогите, пожалуйста

Добавлено через 2 часа 54 минуты
Вот ещё один вариант кода, но там нужно как-то добавить поиск

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
#include "stdafx.h"
#include <iostream>
 
struct list{// list - заголовок который содержит разную инфу о списке
private://доступ только из внутренних методов(функций)
    struct node{//да да структура которая существует только внутри другой ))
    //node - конкретный элемент
    //для списка без заголовка используется только node
    public:
        int _value;//тип данных в списке
                    //это может быть что угодно
                    //поставишь какой больше нравится
                    //разумеется придется поменять везде
        node *_next;
        node():_next(NULL),_value(NULL){}//конструктор пустого узла
                                        //после : идет список инициализации
        node(int val)//конструктор для первого и единственного узла в списке
                    //т.е. будет указывать сам на себя
        {
            this->_value = val;
            this->_next = this;
        }
        node(int val, node *ptr)//конструктор для общего узда
        {
            this->_value = val;
            this->_next = ptr;
        }
 
    };
 
    node *_ptr; //указатель на первый узел
    unsigned int _size; //размер
 
    node *_getLast()//забирает последный
                    //возвращает указатель на внутренний тип
                    //следовательно использование из вне невозможно
    {
        node *_tmp = this->_ptr;
        while(_tmp->_next != this->_ptr)//собственно сам способ перебора
                                        //пока выполняется некое условие
        {
            _tmp = _tmp->_next;         //меняем элемент списка на следующий 
        }
        return _tmp;
    }
public://доступ из любой точки кода
    list():_ptr(NULL),_size(NULL){}
    void add(int val) //добавить в конец(между первым и посследним) списка новый элемент
    {
        if(this->_size)//если список не пуст
        {
            //то мы тварим магию указателей
            node *_last = this->_getLast();
            node *_newNode = new node(val, _last->_next);
            _last->_next = _newNode;
        }
        else
        {
            //иначе вызываем конструктор для первого члена
            this->_ptr = new node(val);
        }
        this->_size++;
    }
 
    int get(const int id = 0)//получение записи с конкретным номером
    {
        if(id > this->_size || !id || id < 0 ) return NULL;
        
        int _poz = 1;
        node *_tmp = this->_ptr;
        while(_poz != id)
        {
            _poz++;
            _tmp = _tmp->_next;
        }
        return _tmp->_value;
    }
 
    void set(const int id, int val)//перезапись конкретного
    {
        if(id > this->_size) return;
        
        int _poz = 1;
        node *_tmp = this->_ptr;
        while(_poz != id)
        {
            _poz++;
            _tmp = _tmp->_next;
        }
        _tmp->_value = val;
    }
};
 
 
//тут только добовление
//получение и изменение некоторого
//сделаешь остальное - поймень как работает то что готово
 
int main()
{
    using namespace std;
    list *_ptr = new list;
    _ptr->add(1);//заполняем совершенно свободно
    _ptr->add(2);
    _ptr->add(3);
    _ptr->add(4);
    _ptr->add(5);
    cout << _ptr->get(4) << endl; //получаем некий элемент
    _ptr->set(4, 8, 5); //меняем его содержимое
    cout << _ptr->get(4) << endl; //выводим снова
    //поражаемся тому что это работает
    system("pause");
}
 
Текущее время: 22:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru