Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите доделать плиз, Срочно

75K
17 октября 2011 года
st vamp
1 / / 17.10.2011
найти и удалить первый нулевой элемент в списке
Язык программирования Pascal
Код:
Program Spisok;
uses
  crt;
type
 
  Tinf=integer;
  List=^TList;
  TList=record
    data:integer;
    next:List;
  end;
var b: integer;
    m: array[1..100] of integer;
      n: integer;
 
procedure AddElem(var spis1:List;znach1:integer);
var
  tmp:List;
begin
  if spis1=nil then
  begin
    GetMem(spis1,sizeof(TList));
    tmp:=spis1;
  end
  else
  begin
    tmp:=spis1;
    while tmp^.next<>nil do
      tmp:=tmp^.next;
    GetMem(tmp^.next,sizeof(TList));
    tmp:=tmp^.next;
  end;
  tmp^.next:=nil;
  tmp^.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;
/////////тут я пытаюсь найти первый нулевой элемент и удалить его///
//procedure SearchElemZnach(spis1:List);                          //
//var c: integer;                                                 //
//    i: integer;                                                 //
//begin                                                           //
//  if spis1=nil then                                             //
//  begin                                                         //
//    writeln('пусто');                                           //
//    exit;                                                       //
//  end;                                                          //
//  while spis1<>nil do                                           //
//  begin                                                         //
//    Write(spis1^.data, ' ');                                    //
//    c:=spis1^.data;                                             //
//    if spis1^.data=0 then                                       //
//    dispose (spis1^.next);                                      //
//   spis1:=spis1^.next;                                          //
//    end;                                                        //
//    writeln;                                                    //
//    writeln('Выводим ');                                        //
//    for i:=1 to n do                                            //
//    begin                                                       //
//    write(spis1);                                               //
//    end;                                                        //
//    readln;                                                     //
//end;                                                            //
////////////////////////////////////////////////////////////////////
var
  Spis,tmpl:List;
  znach:integer;
  ch:char;
  i: integer;
begin
  Spis:=nil;
begin
            write('Введите кол-во ');
            readln(n);
            for i:=1 to n do
            begin
            write(i,'-й');
            readln(znach);
            m:=znach;
            if i=1 then
            begin
            b:=znach;
            end;
            AddElem(Spis,znach);
            end;
            readln;
           clrscr;
           Print(Spis);
           readln;
           clrscr;
           SearchElemZnach(spis);
           readln;
          end;
         FreeStek(spis);
 
 
end.
392
20 октября 2011 года
cronya
421 / / 03.01.2009
а в чем собственно проблема та? Как выделал память под него, так и удаляй. Связи наладить надо между э-тами списка при удалении, если в нем есть еще э-ты. В инете полно примеров.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог