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

Односвязанный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка операций никремента и декремента http://www.cyberforum.ru/cpp-beginners/thread1755028.html
Привет, не могу никак операции никремента и декремента сделать, помогите разобраться тупому и переделать функции void snyat(), void put();перегруженный ввод и вывод сделал, а как эти сделать? Вот мои наработки: #include <iostream> using namespace std; #include <Windows.h> #include <string> #include <sstream>
C++ Class Создать класс vector3D, задаваемый тройкой координат. Обязательно должны бытьреализованы: сложение и вычитание векторов, скалярное произведение векторов,умножение на скаляр, вычисление длины вектора, сравнение длины векторов.Продемонстрировать работу членов-функций в основной функции программы может у кого-то есть шаблон чтобы я мог оттолкнуться от чего-то http://www.cyberforum.ru/cpp-beginners/thread1755023.html
C++ Оформление строки в консоли Windows через ESCAPE-последовательности
Собственно, хочу по ходу строки менять стиль/цвет и т.п. Конечно есть варианты: - установить параметры консоли - вывести кусок строки - гоуту бегин но дело в том, что сама строка формируется у меня в результате рекурсивой конкатенации и выводится целиком. Остается вариант вклинить в нее в определенные места управляющие символы (если это возможно). Но навскидку вариант "\x1bне изменяет...
Потоки C++
Я создаю поток так: CreateThread(NULL, 0, MyThread, (LPVOID)&param, 0, NULL); Но мне нужно обработать 100 раз функцию MyThread. 100 потоков создавать нельзя, ка быть? Как дожидаться завершения одних потоков, чтобы потом на его место поставить новый?
C++ C++ Как скомпилировать программу в CodeBlock? http://www.cyberforum.ru/cpp-beginners/thread1754886.html
Новичок, установила Code Blocks 10.05. Создала консольное приложение. Написала первую программу "Hello World",а как скомпилировать не знаю.Нажимаю Build,в окне сообщений пишется вот что: Compiling: main.cpp Linking console executable: bin\Debug\программа_1.exe Output size is 913.10 KB Process terminated with status 0 (0 minutes, 4 seconds) 0 errors, 0 warnings При нажатии на пуск (зеленый...
C++ Написать программу для вычисления выражения Написать программу и вычислить в С++ DI=R^3-\sqrt{\frac{c}{3q}}; R\begin{cases} \text{ q\sqrt{1+x} } \\ \text{ c+\frac{inq}{x} } \end{cases} Если 0,5< x < 1,2 Если х=1,2 с=1,2; q=7.05. Значение х задать с клавиатуры. подробнее

Показать сообщение отдельно
Stelgi
0 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 69

Односвязанный список - C++

05.06.2016, 12:53. Просмотров 223. Ответов 4
Метки (Все метки)

Здравствуйте. Вот задача:Структура содержит фамилию и 4 оценки. Удалить из списка имеющих 2, 3.
Создаю список( структура List). Есть проблема с удалением элементов. За удаление отвечает Delete.
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
void Delete(List **begin){
    
    if(*begin==NULL)
    return;
    
    List *t = *begin;
    
    for(int i(0);i<4;i++){
        if( ((t->a.mark[i]) == 2) || ((t->a.mark[i]) == 3) ){
            *begin = t->next;
            delete t;
            i=12;
 
        }
    }
    
    
    List *t1 = t->next;
    bool data=true;
    int i=0;
    while(t1){
        for(int i(0);i<4;i++){
            if( ((t1->a.mark[i]) == 2) || ((t1->a.mark[i]) == 3) ){
            t->next = t1->next;
            delete t1;
            goto l;
            }
        }
        l:
        t=t1;
        t1 = t1->next; 
        
    }
    system("pause");    
    
}
В маин есть строчка
C++
1
List *begin = NULL;
и обращение к функции
C++
1
Delete(&begin);
При запуске программы происходит создание списка, а затем я могу просмотреть его, с помощью функции output
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void output(List *begin){
    
    system("cls");
    List *print = begin;
    
    cout << "Г’ГҐГЄГіГ№ГЁГҐ îöåГ*ГЄГЁ" << endl;
 
    
    while(print){
        cout << endl;
        cout << print->a.lastName << " -> \t";
        for(int i(0);i<4;i++){
            cout << i+1 << "-Гї îöåГ*ГЄГ* - " << print->a.mark[i] << "\t";
        }
        print=print->next;
    }
    
    cout << endl;
    system("Pause");
}
Затем, я использую функцию удаление, вроде ошибок нет, после хочу просмотреть результат функцией output и происходит следующее, бывает все нормально выводится, а бывает бесконечный цикл непонятно чего.
Миниатюры
Односвязанный список   Односвязанный список  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru