Дан стек символов. Преобразовать стек, оставив в нем из группы подряд идущих символов только один - Delphi
procedure TForm1.Button4Click(Sender: TObject);
var Buff: TNodePointer;
x: TItem;
i: Cardinal;
begin
i:=0;
Buff:=Head;
if(Buff^.Next=nil) then
begin
ShowMessage('В стеке один элемент!');
exit;
end;
while Buff <> nil do
begin
if(Buff^.Data=Buff^.Next^.Data) then
begin
while (Buff^.Next<>nil) and (Buff^.Data=Buff^.Next^.Data) and not(isEmpty(Buff)) do
begin
pop(Buff^.Next,x);
for i:=0 to StringGrid1.RowCount-2 do
begin
StringGrid1.Cells[0,i]:=StringGrid1.Cells[0,i+1]
end;
StringGrid1.RowCount:=StringGrid1.RowCount-1;
end;
end;
Buff:=Buff^.Next;
end;
end;
end.
Помогите с данной задачей, в общем если ввести к примеру 1 2 3 4 5 5 5 5 , то останется 1 2 3 4 5, а если ввести 1 2 3 4 5 5 5 5 6, то остается 1 2 3 4 5 5, не знаю с чем связано. Скорее всего ошибка с выводом на StringGrid
Так же прикладываю проект https://yadi.sk/d/C7AuwnlM3Gnf8Y