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

Исключить повторяющиеся элементы из списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сколько нужно времени на изучение языка, чтобы владеть им в достаточной мере http://www.cyberforum.ru/cpp-beginners/thread880451.html
Здравствуйте! Я хочу изучить С++ практически в идеале! Подскажите, сколько потребуется времени для изучения? Какую лучше всего использовать литературу? Заранее спасибо.
C++ Диагонали (Четыре точки являются вершинами параллелограмма. Определить длину диагоналей и найти координаты ) Помогите!!! Четыре точки A(x1; y1), B(x2; y2), C(x3; y3), D(x4; y4) являются вершинами параллелограма. Определить длину диагоналей и найти координаты точки их пересечения. Входные данные В 4-х строках через пробел заданы x и y координаты последовательных вершин параллелограма, соответственно точек A, B, C и D. Все числа по абсолютной величине не превышают 100. Выходные данные ... http://www.cyberforum.ru/cpp-beginners/thread880446.html
C++ Необходимо разобраться в коде
Не все понимаю в программе, пожалуйста, кому не сложно объясните что делается в ней. В общем как я понял, программа решает СЛАУ методом Жордана-Гаусса с выбором ведущего элемента, но в самом коде я не могу разобрать, что где именно происходит. Возможны ошибки в коде#include "stdafx.h" #include <iostream> #include <conio.h> #include <stdio.h> using namespace std; void show(float** a, int...
C++ Комментарии
// koval1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void main() { int const n=5;
C++ Односвязные списки: как работают? http://www.cyberforum.ru/cpp-beginners/thread880411.html
Здрасте всем! Есть такой вот односвязный список, объясните пожалуйста, как будет выглядеть функция добавления записи в конец такого списка, сколько не пытался, никак вникнуть не могу. Везде представлены примеры только с одной переменной. struct base { int id; string fio; int age; string prof; string party; int num;
C++ Из входных аргументов достать значения Здравствуйте, есть консольная программа time.exe. Запускаем ее через консоль: time.exe "15:00 PM" dms Нужно: как красиво распознать время из argv, т.е. "15:00 PM" ? Нужно, чтобы переменные приняли: int hh; // приняли часы int mm; // приняли минуты char* part = new char; // приняли PM подробнее

Показать сообщение отдельно
pizurok
 Аватар для pizurok
53 / 67 / 3
Регистрация: 05.05.2013
Сообщений: 2,703
27.05.2013, 18:05     Исключить повторяющиеся элементы из списка
Односвязный список это не вариант вообще. Удалять жутко неудобно, каждый раз приходится прогонять с головы. Сделайте двусвязный

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct spis1
{   int obj;
    spis1 *next;
    spis1 *prev;
 
    spis1(int i){
        obj=i;
        next=NULL;
        prev=NULL;
    }
};
spis1 *first;
spis1 *last;
Создаем список
C++
1
2
3
4
5
6
first = new spis1;
last = first;
first->next = NULL;
first->prev = NULL;
//Добавляем элемент
push(5);
Добавление в конец списка
C++
1
2
3
4
5
6
7
8
void push(int x)
{
    last->next = new spis1;
    last->next->prev = last;
    last = last->next;
    last->next = NULL;
    last->obj = x;
}
Удаление элемента по указателю на него
C++
1
2
3
4
5
6
7
void DeleteEl(spis1 *ptr)
{
    //связываем предыдущий и последующий
    ptr->prev->next = ptr->next;
    ptr->next->prev = ptr->prev;
    detete ptr;
}
Удаление повторов (протестировать надо )
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Delete()
{
    spis1 *i = first;
    spis1 *j = first->next;
    while(i != last)
    {
        while(j != last)
        {
             j = j->next;
             if (i->obj == j->prev->obj) 
                 DeleteEl(j->prev);
        }
        i = i->next;
        j = i->next;
    }
}
 
Текущее время: 04:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru