0 / 0 / 0
Регистрация: 19.06.2018
Сообщений: 21
1

Из каждой группы подряд идущих одинаковых слов в списке оставить только одно

26.06.2018, 12:39. Показов 1848. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу, которая формирует список с двумя связями, добавляет в него не менее 20 слов на русском языке. Из каждой группы подряд идущих одинаковых слов в списке оставить только одно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2018, 12:39
Ответы с готовыми решениями:

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

Из каждой группы подряд идущих элементов оставить только один
Дан список строк. Написать подпрограмму, которая из каждой группы подряд идущих элементов оставляет...

Из каждой группы подряд идущих элементов оставить только один
Дан список строк. Написать подпрограмму, которая из каждой группы подряд идущих элементов оставляет...

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

1
Эксперт Pascal/Delphi
6806 / 4565 / 4817
Регистрация: 05.06.2014
Сообщений: 22,438
06.07.2018, 15:28 2
Взято отсюда:
Создать двухсвязной список

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
95
96
97
98
99
100
101
102
type
  Tinf = string[128];{тип данных, который будет храниться в элементе списка}
  List = ^TList;{Указатель на элемент типа TList}
  TList = record {А это наименование нашего типа "запись" обычно динамические структуры описываются через запись}
    data: TInf;  {данные, хранимые в элементе}
    next,    {указатель на следующий элемент списка}
    prev: List;   {указатель на предыдущий элемент списка}
  end;
 
{Процедура добавления нового элемента в двунаправленный список}
procedure AddElem(var nach, ends: List; znach1: TInf);
var
  tmp: List;
begin
  if nach = nil then {не пуст ли список, если пуст, то}
  begin
    New(nach);
    {создаём элемент, указатель nach уже будет иметь адрес}
    nach^.next := nil; {никогда не забываем "занулять" указатели}
    nach^.prev := nil; {аналогично}
    ends := nach; {изменяем указатель конца списка}
  end
  else {если список не пуст}
  begin
    New(ends^.next); 
    {создаём новый элемент}
    ends^.next^.prev := ends; {связь нового элемента с последним элементом списка}
    ends := ends^.next;{конец списка изменился и мы указатель "переставляем"}
    ends^.next := nil; {не забываем "занулять" указатели}
  end;
  ends^.data := znach1; {заносим данные}
end;
 
{процедура печати списка
полностью расписана при работе со стеком}
procedure Print(spis1: List);
begin
  if spis1 = nil then
  begin
    writeln('Список пуст.');
    exit;
  end;
  while spis1 <> nil do
  begin
    Write(spis1^.data, ' ');
    spis1 := spis1^.next
  end;
end;
 
procedure FreeStek(spis1: List);
var
  tmp: List;
begin
  while spis1 <> nil do
  begin
    tmp := spis1;
    spis1 := spis1^.next;
    Dispose(tmp);
  end;
end;
 
var
  ad, ad1, tmp,
  SpisNach, {указатель на начало списка и}
  SpisEnd,   {указатель на конец списка. Эти два указателя }
  tmpl: List; {неотъемлимая часть в двунаправленном списке}
  n: integer;
  tmpinf: TInf;
  s: set of string;
 
begin
  s := [];
  SpisNach := nil;
  SpisEnd := nil;
  repeat
    Writeln('Введите количество элементов в списке: ');
    readln(n);
  until n > 0;
  randomize;
  while n > 0 do
  begin
    write('Введите ', n, '-й элемент списка: ');
    readln(TmpInf);
    AddEleM(SpisNach, SpisEnd, TmpInf);
    dec(n);
  end;
  Writeln('Список до изменений: ');
  Print(SpisNach);
  writeln;
  Writeln('Список после изменений: ');
  while SpisNach <> nil do
  begin
    include(s, SpisNach^.data);
    SpisNach := SpisNach^.next;
  end;
  SpisNach := nil;
  SpisEnd := nil;
  foreach var s1: string in s do
    AddEleM(SpisNach, SpisEnd, s1);
  Print(SpisNach);
  FreeStek(SpisNach);
end.
Добавлено через 4 минуты
Цитата Сообщение от DoomseeSA Посмотреть сообщение
каждой группы подряд идущих одинаковых слов
Надо было:
Из
Маша Маша Маша Паша Паша Маша Паша
получить
Маша Паша Маша Паша
??
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2018, 15:28
Помогаю со студенческими работами здесь

Из каждой группы подряд идущих одинаковых слов составить только одно (с использованием указателей)
Имеется список слов. Из каждой группы подряд идущих одинаковых слов составить только одно. Нужно...

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

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru