Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 2
1

Работа с деком на основе статических массивов

08.01.2016, 12:29. Показов 741. Ответов 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
type
  deque = record
    data: array[1..MAXSIZE] of integer;
    head, tail: integer;
  end;
 
procedure push_front(var d: deque; x: integer);
begin
  if d.head < 1 then d.head += maxsize;
  d.data[(d.head - 1) mod maxsize] := x;
end;
 
procedure push_back(var d: deque; c: integer);
begin
  d.data[(d.tail + 1) mod maxsize] := x;
end;
 
function pop_front(var d: deque): integer;
begin
  result := d.data[(d.head + 1) mod maxsize];
end;
 
function pop_back(var d: deque): integer;
begin
  if d.head < 1 then d.tail += maxsize;
  result := d.data[(d.head - 1) mod maxsize];
end;
Но я даже не понимаю то это, или не то)
К тому же это Pascal ABC, а мне надо Free Pascal.

Как я понял, мне надо чтобы каждый элемент был отдельным массивом, и с деком можно было производить операции (удаление, добавление, что-то еще?)

Вот задание:
1. Написать программу для работы со структурой данных "Дек".
2. Структура данных должна быть реализована на основе статических массивов.
3. Работы со структурой должны осуществляться с помощью текстового пользовательского меню.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2016, 12:29
Ответы с готовыми решениями:

Подскажите код, в котором на основе массива реализуется работа с деком
Народ, подскажите код проги, в котором на основе массива реализуется работа с деком. И по...

Си: работа с деком
вот код.правильный ли? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int size = 0; void pushBack(...

Работа с текстовым деком
Здравствуйте! Необходимо в дек добавить вид животного и работать с ним (прочитать, удалить). Есть...

Работа с деком: ошибка
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
5749 / 3453 / 2448
Регистрация: 22.11.2013
Сообщений: 9,699
Записей в блоге: 1
08.01.2016, 17:12 2
Вот вам в первом приближении основа для работы с деком:
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
type TData = Integer;
function  deqLength(const q: array of TData; h, t: Integer): Integer;
begin
  h:=t-h; if h<0 then Inc(h,High(q)+1); deqLength:=h;
end;
procedure deqClear(const q: array of TData; var h, t: Integer);
begin
  h:=0; t:=0;
end;
procedure deqPushBack(const x: TData; var q: array of TData; var h, t: Integer);
begin
  q[t]:=x; Inc(t); if t>High(q) then Dec(t,High(q)+1);
end;
procedure deqPushFront(x: TData; var q: array of TData; var h, t: Integer);
begin
  Dec(h); if h<0 then Inc(h,High(q)+1); q[h]:=x;
end;
procedure deqPopBack(var x: TData; const q: array of TData; var h, t: Integer);
begin
  Dec(t); if t<0 then Inc(t,High(q)+1); x:=q[t];
end;
procedure deqPopFront(var x: TData; const q: array of TData; var h, t: Integer);
begin
  x:=q[h]; Inc(h); if h>High(q) then Dec(h,High(q)+1);
end;
var
  h, t: Integer;
  q: array [0..99] of TData;
  x: TData;
begin
  for x:=1 to 10 do deqPushBack(x,q,h,t);
  WriteLn(deqLength(q,h,t));
  while h<>t do begin
    deqPopFront(x,q,h,t); Write(' ',x);
  end; WriteLn;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2016, 17:12

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Использование статических массивов
Дана целочисленная прямоугольная матрица размерности n на m. Упорядочить её строки по возрастанию...

Обработка статических массивов
Даны вещественные числа a,b. Значения функции записать в массив. Затем, используя значения функции,...

Динамический массив статических массивов
Здравствуйте! Пытаюсь создать двумерный динамический массив с заранее известной правой...

Обработка одномерных статических массивов
Проблема в том, что программа не находит наименьший положительный элемент. Она работает на костыле...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.