ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
