LINUX.ORG.RU

История изменений

Исправление bormant, (текущая версия) :

поправьте его сначала

Я поправил. См. Помогите разобраться с односвязным списком. (комментарий)

Вы предлагаете писать:

var
  p, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  p := first;
  while p^.next <> nil do
    if p^.next^.data < 0 then begin
      t := p^.next;
      p^.next := p^.next^.next;
      Dispose(t);
    end else
      p := p^.next;
или
var
  p, pp, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  pp := first;
  p := pp^.next
  while p <> nil do
    if p^.data < 0 then begin
      t := p;
      pp^.next := p^.next;
      p := p^.next;
      Dispose(t);
    end else begin
      pp := p;
      p := p^.next;
    end;

Вместо
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do
    if p^^.data < 0 then begin
      t := p^;
      p^ := p^^.next;
      Dispose(t);
    end else
      p := @(p^^.next);

... конечно, на самом деле вместо:
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do with p^^ do
    if data < 0 then begin
      t := p^;
      p^ := next;
      Dispose(t);
    end else
      p := @next;

Не буду спорить, в результирующим бинарном коде может быть преимущество, оно действительно есть? При каких обстоятельствах значимо проявляется, насколько велико?


Цветы не самый практичный подарок. Постоят пару дней, а дальше в мусорку.
Другое дело свиная голова. Это и суп, и холодец, и просто красиво.
(q)⁠⁠

Исправление bormant, :

поправьте его сначала

Я поправил. См. Помогите разобраться с односвязным списком. (комментарий)

Вы предлагаете писать:

var
  p, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  p := first;
  while p^.next <> nil do
    if p^.next^.data < 0 then begin
      t := p^.next;
      p^.next := p^.next^.next;
      Dispose(t);
    end else
      p := p^.next;
или
var
  p, pp, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  pp := first;
  p := pp^.next
  while p <> nil do
    if p^.data < 0 then begin
      t := p;
      pp^.next := p^.next;
      p := p^.next;
      Dispose(t);
    end else begin
      pp := p;
      p := p^.next;
    end;

Вместо
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do
    if p^^.data < 0 then begin
      t := p^;
      p^ := p^^.next;
      Dispose(t);
    end else
      p := @(p^^.next);

Не буду спорить, в результирующим бинарном коде может быть преимущество, оно действительно есть? При каких обстоятельствах значимо проявляется, насколько велико?


Цветы не самый практичный подарок. Постоят пару дней, а дальше в мусорку.
Другое дело свиная голова. Это и суп, и холодец, и просто красиво.
(q)⁠⁠

Исправление bormant, :

поправьте его сначала

Я поправил. См. Помогите разобраться с односвязным списком. (комментарий)

Вы предлагаете писать:

var
  p, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  p := first;
  while p^.next <> nil do
    if p^.next^.data < 0 then begin
      t := p^.next;
      p^.next := p^.next^.next;
      Dispose(t);
    end else
      p := p^.next;
или
var
  p, pp, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  pp := first;
  p := pp^.next
  while p <> nil do
    if p^.data < 0 then begin
      t := p;
      pp^.next := p^.next;
      Dispose(t);
    end else begin
      pp := p;
      p := p^.next;
    end;

Вместо
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do
    if p^^.data < 0 then begin
      t := p^;
      p^ := p^^.next;
      Dispose(t);
    end else
      p := @(p^^.next);

Не буду спорить, в результирующим бинарном коде может быть преимущество, оно действительно есть? При каких обстоятельствах значимо проявляется, насколько велико?


Цветы не самый практичный подарок. Постоят пару дней, а дальше в мусорку.
Другое дело свиная голова. Это и суп, и холодец, и просто красиво.
(q)⁠⁠

Исправление bormant, :

поправьте его сначала

Я поправил. См. Помогите разобраться с односвязным списком. (комментарий)

Вы предлагаете писать:

var
  p, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  p := first;
  while p^.next <> nil do
    if p^.next^.data < 0 then begin
      t := p^.next;
      p^.next := p^.next^.next;
      Dispose(t);
    end else
      p := p^.next;
или
var
  p, pp, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  pp := first;
  p := pp^.next
  while p <> nil do
    if p^.data < 0 then begin
      t := p;
      pp^.next := p^.next;
      Dispose(t);
    end else begin
      pp := p;
      p := p^.next;
    end;

Вместо
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do
    if p^^.data < 0 then begin
      t := p^;
      p^ := p^^.next;
      Dispose(t);
    end else
      p := @(p^^.next);

Не буду спорить, в результирующим бинарном коде может быть преимущество, оно действительно есть? При каких обстоятельствах значимо проявляется, насколько велико?


Цветы не самый практичный подарок. Постоят пару дней, а дальше в мусорку. Другое дело свиная голова. Это и суп, и холодец, и просто красиво.
(q)⁠⁠

Исходная версия bormant, :

поправьте его сначала

Я поправил. См. Помогите разобраться с односвязным списком. (комментарий)

Вы предлагаете писать:

var
  p, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  p := first;
  while p^.next <> nil do
    if p^.next^.data < 0 then begin
      t := p^.next;
      p^.next := p^.next^.next;
      Dispose(t);
    end else
      p := p^.next;
или
var
  p, pp, t: PItem;
//...
  while (first <> nil) and (first^.data < 0) do begin
    t := first;
    first := first^.next;
    Dispose(t);
  end;
  if first = nil then Exit;
  pp := first;
  p := pp^.next
  while p <> nil do
    if p^.data < 0 then begin
      t := p;
      pp^.next := p^.next;
      Dispose(t);
    end else begin
      pp := p;
      p := p^.next;
    end;

Вместо
var
  p: ^PItem;
  t: PItem;
//...
  p := @first;
  while p^ <> nil do
    if p^^.data < 0 then begin
      t := p^;
      p^ := p^^.next;
      Dispose(t);
    end else
      p := @(p^^.next);

Не буду спорить, в результирующим бинарном коде может быть преимущество, оно действительно есть? При каких обстоятельствах значимо проявляется, насколько велико?


Цветы не самый практичный подарок. Постоят пару дней, а дальше в мусорку. Другое дело свиная голова. Это и суп, и холодец, и просто красиво. (q)⁠⁠