Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические задания и программы / Методичка с материалом и заданиями (все вместе).doc
Скачиваний:
82
Добавлен:
11.02.2016
Размер:
2.19 Mб
Скачать

6.3. Кольцевой список

Рассмотрим кольцевой список, в котором последний элемент имеет указатель на первый элемент.

Пример 6.3. Задан кольцевой список, состоящий из шести элементов (рис. 6.3.); выполнить то же задание, что и в примере 6.1.

Решение опять представим в виде таблиц (табл. 6.7а, б, в) с тремя столбцами: индекс, имя и указатель на следующий элемент.

Разница между содержимым таблицы обычного списка (пример 1, табл. 6.1) и содержимым таблицы кольцевого списка (табл. 6.7а) в том, что в табл. 6.7а нет пустой строки и в 6–й строке NEXT[6] =1, а не пусто. Содержимое табл. 6.7б и 6.7в аналогично содержимому табл. 6.2 и 6.3 для простого списка.

Таблица 6.7а Таблица 6.7б Таблица 6.7в

Индекс

NAME

NEXT

Индекс

NAME

NEXT

Индекс

NAME

NEXT

1

А1

2

1

А1

2

1

А1

2

2

А2

3

2

А2

3

2

А2

3

3

А3

4

3 Pos

А3

7

3

А3

4

4

А4

5

4

А4

5

4 Pos

А4

6

5

А5

6

5

А5

6

5 Free

6

А6

1

6

А6

1

6

А6

1

7 Free

----

----

7

А34

4

8 Free

----

----

6.4. Стек

Рассмотрим работу со стеком. Стек представляется массивом, в таблице – это столбец NAME. Вершина стека определяется значением переменной ТОР. Ввод и вывод элемента производится на одном конце списка. При работе со стеком производятся следующие операции:

вставка - TOP:=TOP + 1; <ввод элемента>;

удаление – <удаление элемента>; ТОР := ТОР – 1;

Пример 6.4. В стек (рис. 6.4) поступило 4 элемента el1, el2, el3, el4.

  1. Записать представление такого стека в виде массива NAME.

  2. Вставить элемент el5.

  3. Удалить элемент el4 (из исходного массива).

Решение показано соответственно в табл. 6.8, 6.9, 6.10. Изменения можно наблюдать по указателю вершины стека – ТОР.

Рис. 6.4

Т

Индекс

NAME

1

EL1

2

EL2

3

EL3

4

EL4

5 Top

EL5

Индекс

NAME

1

EL1

2

EL2

3 Top

EL3

аблица 6.8 Таблица 6.9 Таблица 6.10

Индекс

NAME

1

EL1

2

EL2

3

EL3

4 Top

EL4

6.5. Очередь

Рассмотрим работу с очередью. Здесь ввод производится в один конец очереди (хвост очереди), а вывод – из другого (голова очереди). В таблице для очереди используются указатели: Tail – хвост очереди, Head – голова очереди.

Пример 6.5. Очередь в текущий момент состоит из 5 элементов (рис.6.5); первые 9 элементов отсутствуют.

Р

1. Записать представление очереди в виде массива NAME .

2.Вставить элемент el6.

3.Удалить элемент el1 (из исходной очереди).

ис. 6.5

Решение может быть представлено в виде трех таблиц, состоящих из двух основных столбцов: индекс и указатели Head, Tail, задающие направление очереди, а также имя элемента.

Таблица 6.12

Индекс

NAME

1

9

---

---

10 Head

11

12

13

14

15 Tail

EL1

EL2

EL3

EL4

EL5

EL6

Таблица 6.13

Индекс

NAME

1

9

10

---

. . .

---

11 Head

12

13

14 Tail

EL2

EL3

EL4

EL5

Таблица 6.11

Индекс

NAME

1

9

---

. . .

---

10 Head

11

12

13

14 Tail

EL1

EL2

EL3

EL4

EL5