Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
sunny_bunny
0 / 0 / 0
Регистрация: 12.11.2014
Сообщений: 7
1

В списке L с каждой группы подряд равных элементов оставить только один элемент

14.02.2015, 13:57. Просмотров 850. Ответов 1
Метки нет (Все метки)

Опишите программу , которая в списке L с каждой группы подряд равных элементов оставляет только один элемент.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2015, 13:57
Ответы с готовыми решениями:

Из каждой группы равных между собой элементов нужно оставить только один
1.Дан целочисленный массив а1,а2,...аn,среди элементов которого могут быть равные. Из каждой группы...

Из каждой группы подряд идущих одинаковых слов в списке оставить только одно
Составить программу, которая формирует список с двумя связями, добавляет в него не менее 20 слов на...

Список: Из группы подряд идущих элементов с одинаковыми значениями оставить только первый
Помогите!!!! Дан список из n целых чисел a,a,..,a. Из группы подряд идущих элементов с одинаковыми...

Составьте новый массив из чисел, взятых по одному из каждой группы равных членов последовательности
Задачка про массив.решите пожалуйста. Пусть даны целые числа а1,а2,....,аn,среди которых могут...

Оставить в строке только один экземпляр каждого встречающегося символа
есть прога и есть задание: Оставить в строке только один экземпляр каждого встречающегося символа...

1
CodeR
Фрилансер
3381 / 2782 / 3000
Регистрация: 08.02.2012
Сообщений: 6,757
Записей в блоге: 1
15.02.2015, 08:37 2
Лучший ответ Сообщение было отмечено sunny_bunny как решение

Решение

Pascal
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
type
  List = ^Zveno;
  //тип список
  Zveno = Record
    next: List;//указатель на следующий элемент
    info: integer;//поле данных
  End;
 
var
  p, l, q1, temp: List;
  m, n, i, k : integer;
 
begin
  repeat
    write('Количество элементов: ');
    readln(n);
  until (n > 0);
  writeln('Введите ', n, ' элементов');
  for i := 1 to n do
  begin
    read(m);//вводим число
    //если список пустой,то
    if l = nil then
    begin
      //создаём голову списка
      new(l);
      p := l;
      //указатель на следующий элемент ставим nil (т.е. никуда не указывает)
      p^.Next := nil;
      //и заносим данные
      l^.info := m;
    end
    else
    begin
      //выделяем указатель на следующий элемент
      new(p^.Next);
      //устанавливаем указатель p на только что созданный элемент списка
      p := p^.Next;
      //заносим данные в новое звено списка
      P^.Info := m;
      //указатель на следующий элемент = Nil
      p^.Next := nil;
    end;
  end;
  p := l;//в p заносим голову списка,чтобы начать просмотр списка сначала
  temp := p;
  //пока не конец списка делаем
  while p^.next <> nil do
  begin
    k := 0;
    //если очередной звено списка имеет элемент равный нулю то
    if (p^.Info = p^.next^.info) then
    begin
      //если это начало списка,то
      if (p = l) then
      begin
        //смещаем указатель начала списка на 1 позицию вправо
        l := p^.next;
        q1 := p;
        //переходим к следующему элементу списка
        p := p^.next;
        //удаляем элемент списка
        Dispose(q1)
      end
      else
      begin
        q1 := p;//запоминаем указатель на удаляемый элемент
        //в temp хранится предыдущей элемент списка
        //т.е. элемент находящийся до элемента p
        //и указатель на следующий элемент в temp ставим на следующий элемент в p
        //т.е. теперь temp^.next ссылается на p^.next (на следующий элемент за удаляемым)
        temp^.next := p^.next;
        p := temp;//восстанавливаем список
        Dispose(q1);//уничтожаем элемент
      end;
      k := 1;
    end;
    //если k=0 значит нужно перейти к следующему элементу списка
    if k = 0 then 
    begin
      temp := p;//в temp запоминаем предыдущий элемент списка
      p := p^.next;//переходим к следующему элементу
    end;
  end;
  p := l;
  while p <> nil do
  begin
    write(p^.Info, ' ');
    q1 := p;
    p := p^.Next;
    Dispose(q1);
  end;
  readln;
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2015, 08:37

Оставить в строке только один экземпляр каждого встречающегося символа
С клавиатуры вводится строка. Оставить в строке только один экземпляр каждого встречающегося...

Произвольную строку разбить на группы по 5 следующих один за другим символов в каждой
Задача: Произвольную строку разбить на группы по 5 следующих один за другим символов в каждой, не...

Дан массив А, состоящий из n натуральных чисел. Определите максимальное число идущих подряд элементов, равных
Дан массив А, состоящий из n натуральных чисел. Определите максимальное число идущих подряд...


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

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

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