Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Skaarj
2 / 2 / 4
Регистрация: 28.06.2013
Сообщений: 56
1

Удаление повторяющихся элементов из списка(найти ошибку)

28.06.2013, 21:39. Просмотров 1254. Ответов 2
Метки нет (Все метки)

Всем привет! Прошу помощи, надо написать функцию удаления всех повторяющихся элементов из списка. Например надо получить из a b g c d a b c e f -> g d e f.
Я попытался сначала сделать эту функцию из функции которая удаляет только повторяющиеся, то есть из a b g c d a b c e f -> a b g c d e f, но не получилось и решил сделать через ещё один цикл..показалось что так проще. Cажусь на p-ый элемент и сравниваю с t-ым, пока не находится пара тождественно равных, затем беру значение этого p и присваиваю к некоторой переменной d. И затем делаю ещё один цикл который пробегает от головы до конца сравнивая все элементы с d и удаляя те, что равны d.


Проблема только в том что при удаление больше 4 элементов программа где то подвисает в цикле, не могу понять в чём ошибка и почему только 4 удаления. И ещё списки вида a b ... b обрабатывает в тот же список только первый элемент заменяет 0, но тут я наверное разберусь. Не знаю правильный ли я путь выбрал.
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
list *Del_Same(list *head, int &d)
{
     list *p=head, *t, *q, *u;
     
     while(p!=NULL)
     {            t=p;
                  while(t->next!=NULL)
                  {
                              if(p->value==t->next->value)
                              {
                              d=p->value;
                              u=head;
                                      if(head==NULL) { puts("list empty"); return NULL;}
                                      if(head->value==d){head=head->next; delete u; return head;}
                                      
                                      while(u->next!=NULL)
                                      {
                                                          if(u->next->value==d)
                                                          {
                                                          q=u->next;
                                                          u->next=u->next->next;
                                                          delete q;
                                                          }
                                      else u=u->next;                  
                                      }
                               } 
                               else t=t->next;
                  } 
     p=p->next; 
     }
     return head;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 21:39
Ответы с готовыми решениями:

Удаление из списка объектов класса повторяющихся элементов
Добрый вечер. Есть программа, на определенном этапе которой мне необходимо удаление одинаковых...

Удаление повторяющихся элементов в ArrayList
В цикле с помощью Add добавляю строки в массив ArrayList ArrayList temp = new ArrayList(); ...

Удаление повторяющихся элементов массива
Ребят, как можно вывести только неповторяющиеся элементы массива двумерного??? using System;...

Удаление повторяющихся элементов в массиве
Подскажите как реализовать удаление одинаковых чисел из массива? чем проще тем лучше Спасибо.

Удаление повторяющихся элементов в массиве
Здравствуйте. есть такая задача: существует объект класса ArrayList в котором хранятся значения...

2
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
28.06.2013, 21:50 2
Это раздел C#
0
Skaarj
2 / 2 / 4
Регистрация: 28.06.2013
Сообщений: 56
28.06.2013, 21:53  [ТС] 3
прошу удалить
0
28.06.2013, 21:53
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 21:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удаление повторяющихся элементов в ArrayList
Есть метод в котором открывается файл и далее происходит запись столбцов (но это не важно) ...

Удаление повторяющихся элементов в List<string>
private List&lt;string&gt; _teachers; public List&lt;string&gt; teachers { get...

Удаление повторяющихся элементов из xml файла
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;head&gt; &lt;element id=&quot;0&quot;&gt; &lt;name&gt;1&lt;/name&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.