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

Удалить из списка все элементы с нечетными номерами

23.03.2015, 19:15. Показов 410. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можна написать коментарии к этой програмки.
дано указатель Р1 на первый элемент двусвязного списка, содержащего не менее двух элементов. Удалить из списка все элементы с нечетными номерами и вывести указатель на первый элемент преобразованного списка. После удаления элементов освободить память, что они занимали.
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
type
 
  TElement = Integer;
  PNode = ^TNode;
  TNode = record
    prev, next: PNode;
    data: TElement;
  end;
 
function NewNode(n: TElement; pFirst: PNode): PNode;
begin
  if pFirst = nil then begin
    New(pFirst);
    pFirst^.Next := nil; pFirst^.Prev := nil;
  end else begin
    New(pFirst^.Prev);
    pFirst^.Prev^.Next := pFirst;
    pFirst^.Prev^.Prev := nil;
    pFirst := pFirst^.Prev;
  end;
  pFirst^.data := n;
  NewNode := pFirst;
end;
 
procedure sPush(var lst: PNode; n: TElement);
begin
  lst := NewNode(n, lst);
end;
 
function sPop(var lst: PNode): TElement;
var
  t: PNode;
begin
  if lst=nil then WRITELN('ERROR');
  with lst^ do 
  begin
    sPop := data;
    t := lst; lst := next; Prev := nil; Dispose(t);
  end;
end;
 
procedure sWrite(lst: PNode);
begin
  while lst <> nil do 
  begin
    Write(' ', lst^.data);
    lst := lst^.next;
  end;
end;
 
procedure sDeleteEven(lst: PNode);
var
  t, t1: PNode;
begin
  while (lst <> nil) and (lst^.next <> nil) do 
  begin
    t := lst^.next;
    t1 := lst;
    lst^.next := lst^.next^.next;
    Dispose(t);
    lst := lst^.next;
    if lst <> nil then lst^.prev := t1;
  end;
end;
 
procedure sDeleteOdd(var lst: PNode);
var
  t: PNode;
begin
  if lst <> nil then begin
    t := lst;
    lst := lst^.next;
    lst^.prev := nil;
    dispose(t);
    sDeleteEven(lst);
  end;
end;
 
var
  st: pNode;
  e: TElement;
  i: Integer;
 
begin
  st := nil;
  Randomize;
  for i := 1 to 10 do sPush(st, -Random(101) + 50);
  sWrite(st); WriteLn;
  sDeleteOdd(st);
  sWrite(st); WriteLn;
  while st <> nil do sPop(st);
  readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2015, 19:15
Ответы с готовыми решениями:

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

Перегруппировать элементы списка, переместив все элементы с нечетными номерами в конец
Дан указатель P1 на первый элемент непустого двусвязного списка. Перегруппировать его элементы,...

Удалить из массива все элементы с нечетными номерами
Дано целочисленный массив размера N (&gt; 2). Удалить из массива все элементы с нечетными номерами (1,...

Удалить из массива все элементы с нечетными номерами
Дано целочисленный массив (N&gt; 2). Удалить из массива все элементы с нечетными номерами (1,3,5 ...)....

0
23.03.2015, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2015, 19:15
Помогаю со студенческими работами здесь

Удалить из списка все элементы с нечетными номерами
Можете переделать эту програму так : дано указатель Р1 на первый элемент двухсвязного списка,...

Удалить из массива все элементы с нечетными номерами
Подскажите... Дан целочисленный массив размера n(&gt;2). Удалить из массива все элементы с нечетными...

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

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


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

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

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