ВУЗ:
Составители:
Рубрика:
29
6. Списки
Список – последовательность элементов, разделенных запя-
той и заключенных в квадратные скобки. Элементами одного спи-
ска могут быть различные структуры данных, допустимые в Icon'е,
в том числе и списки.
6.1. Создание списков
Списки могут быть созданы следующими способами:
L:=[] – создается пустой список.
L:=list() – создается пустой список.
L:=[e1,e2,...,eN] – создается список из N элементов.
L:=list(N) – создается
список из N элементов, инициализи-
рованных значением &null (специальная константа, означающая
отсутствие значения у какого-либо элемента).
L:=list(N,Val) – создается список из N элементов, каждый из
которых имеет значение Val.
6.2. Индексированный доступ к элементам списков
Индексированный доступ к элментам списка вполне похож
на доступ к элементам строки.
L[1], L[2], ...L[*L] – элементы списка от 1-го до последнего.
L[5][2] – второй
элемент пятого подсписка в списке L.
L[3:5] – подсписок из двух элементов (3-й и 4-й).
6.3. Операции со списками
!L Возвращает первый элемент списка. В соответствующем
контексте генерирует все элементы списка:
?L возвращает случайный элемент списка.
L ||| M объединение списков.
L === M операция сравнения на равенство успешна, если
списки одинаковы.
L ~=== M операция сравнения на не равенство успешна, ес-
ли списки различны.
30
6.4. Функции для работы со списками
copy(L) – создает копию L (L1:=copy(L)).
set(L) – создает множество из списка (seT:=set(L)).
sort(L) – создает новый отсортированный список. Элементы
одного типа группируются вместе, составные объекты размеща-
ются в своих группах в порядке их создания.
sortf(L,i) – создает новый список. При этом записи и списки
с числом полей не больше i располагаются в порядке возрастания
их i-х полей.
Пример:
procedure main()
L:=[[1,7,5],[7,6,9],[11,67,7]]
every L1:=!sortf(L,2) do every write(" ",!L1)
end
Выход: 7 6 9 1 7 5 11 67 7
6.5. Списки как стеки или очереди
Следующие функции позволяют работать со списками как
со стеками или очередями.
get(L) – возвращает и удаляет из списка первый элемент.
pop(L) – то же самое.
pull(L) – возвращает и удаляет из списка последний элемент.
push(L,x) – момещает x в список L в качестве 1-го элемента,
смещая остальные
на одну позицию вправо.
push(L,x1,x2,...,xN) – эквивалентно многократному исполь-
зованию push с двумя аргументами.
put(L,x),put(L,x1,x2,...,xN) – вставка элементов в конец спи-
ска.
Пример
: вариант объединения списков L и M: every
put(L,!M).
6. Списки 6.4. Функции для работы со списками copy(L) – создает копию L (L1:=copy(L)). Список – последовательность элементов, разделенных запя- set(L) – создает множество из списка (seT:=set(L)). той и заключенных в квадратные скобки. Элементами одного спи- sort(L) – создает новый отсортированный список. Элементы ска могут быть различные структуры данных, допустимые в Icon'е, одного типа группируются вместе, составные объекты размеща- в том числе и списки. ются в своих группах в порядке их создания. sortf(L,i) – создает новый список. При этом записи и списки 6.1. Создание списков с числом полей не больше i располагаются в порядке возрастания Списки могут быть созданы следующими способами: их i-х полей. L:=[] – создается пустой список. Пример: L:=list() – создается пустой список. procedure main() L:=[e1,e2,...,eN] – создается список из N элементов. L:=[[1,7,5],[7,6,9],[11,67,7]] L:=list(N) – создается список из N элементов, инициализи- every L1:=!sortf(L,2) do every write(" ",!L1) рованных значением &null (специальная константа, означающая end отсутствие значения у какого-либо элемента). Выход: 7 6 9 1 7 5 11 67 7 L:=list(N,Val) – создается список из N элементов, каждый из которых имеет значение Val. 6.5. Списки как стеки или очереди Следующие функции позволяют работать со списками как 6.2. Индексированный доступ к элементам списков со стеками или очередями. Индексированный доступ к элментам списка вполне похож get(L) – возвращает и удаляет из списка первый элемент. на доступ к элементам строки. pop(L) – то же самое. L[1], L[2], ...L[*L] – элементы списка от 1-го до последнего. pull(L) – возвращает и удаляет из списка последний элемент. L[5][2] – второй элемент пятого подсписка в списке L. push(L,x) – момещает x в список L в качестве 1-го элемента, L[3:5] – подсписок из двух элементов (3-й и 4-й). смещая остальные на одну позицию вправо. push(L,x1,x2,...,xN) – эквивалентно многократному исполь- 6.3. Операции со списками зованию push с двумя аргументами. put(L,x),put(L,x1,x2,...,xN) – вставка элементов в конец спи- !L Возвращает первый элемент списка. В соответствующем ска. контексте генерирует все элементы списка: Пример: вариант объединения списков L и M: every ?L возвращает случайный элемент списка. put(L,!M). L ||| M объединение списков. L === M операция сравнения на равенство успешна, если списки одинаковы. L ~=== M операция сравнения на не равенство успешна, ес- ли списки различны. 29 30
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »