Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 01:11   #1
vampik
 
Регистрация: 15.05.2011
Сообщений: 7
Вопрос Чем отличается Дек от Двухсвязного списка?

Чем отличается Дек от Двухсвязного списка?
что тут не правильно?
И помогите сделать удаление элемента дека и добавление с другого конца.

Код:
 procedure AddElem(var first,last:List; name1, fam1, otchestvo1,marka1,cvet1 :string; god1, NomerAvto1,NomerDvigat1 :integer);
begin
if first=nil then
begin
New(first);
first^.next:=nil;
first^.prev:=nil;
last:=first;
end
else
begin
New(last^.next);
last^.next^.prev:=last;
last:=last^.next;
last^.next:=nil;
end;
  last^.fam:=fam1;
  last^.name:=name1;
  last^.otchestvo:=otchestvo1;
  last^.marka:=marka1;
  last^.cvet:=cvet1;
  last^.NomerAvto:=NomerAvto1;
  last^.NomerDvigat:=NomerDvigat1;
  last^.god:=god1;
  end;

procedure Print(var first:List);
begin
 if first=nil then
  begin
    writeln('Список пуст!');
    exit;
  end;
  while first<>nil do
  begin
    Write(first^.fam, ' ',
          first^.name, ' ',
          first^.otchestvo, ' ',
          first^.marka, ' ',
          first^.cvet, ' ',
          first^.NomerAvto, ' ',
          first^.NomerDvigat, ' ',
          first^.god, ' ');
          first:=first^.next
  end;
  end;

Procedure DelElem(var first,last:List; elem:List);
begin
  if (first=nil) or (elem=nil) then
    exit;
  if elem=first then
  begin
    first:=elem^.next;
    if first<>nil then
      first^.prev:=nil
    else
      last:=nil;
    New(elem);
  end
  else
    if elem=last then
    begin
      last:=last^.prev;
      if last<>nil then
        last^.next:=nil
      else
        first:=nil;
      New(elem);
    end
    else
    begin
      elem:=first;
      while elem^.next<>elem do
        elem:=elem^.next;
      elem^.next:=elem^.next;
      if elem^.next<>nil then
        elem^.next^.prev:=elem;
      New(elem);
     end;
    end;
vampik вне форума Ответить с цитированием
Старый 17.05.2011, 06:15   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Дек (dekue) - это очередь. Добавление в хвост, удаление с головы.
Список - добавление в любой участок, по позиции итератора.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 17.05.2011, 16:55   #3
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

вы ошибаетесь, дек (deque) - это очередь, добавлять и удалять в которую можно с начала и конца.
Цитата:
Добавление в хвост, удаление с головы.
- это очередь.

отличие помоему такое - в деке ты имеешь доступ только к крайним елементам а в Дв-Св списке - к любому элементу
onewho вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем отличается Очередь на базе списка от Очереди на базе массива? TwiX Общие вопросы C/C++ 7 16.02.2011 12:17
Чем отличается интерпретатор от компилятора? Kasper1 Свободное общение 10 22.12.2010 12:36
Чем отличается IA-64 от IA-32 Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.06.2009 16:13
Чем отличается кампилятор от интерпретатора prikolist Помощь студентам 1 20.06.2008 12:16
Чем отличается AX от BX? veter_s_morya Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 05.05.2008 16:50