LinkedList

Previous Next

О связанном списке

Описание

Функции связанного списка позволяют создавать неограниченные(ограничено только размером вашей памяти компьютера) хранилища данных. Этакие безразмерные массивы. В одном связанном списке(листе), можно хранить сразу несколько типов данных. Текущий связанный список в библиотеке является двусвязным и работоспособен на Windows и Linux.. А теперь несколько примеров:

Пример1

#Include "Linked_Lists.bi"
'Создаем новый список
Var list=NewList()
' добавляем элементы списка
AddElement_S(List,"one")
AddElement_S(List,"two")
AddElement_S(List,"three")
AddElement_S(List,"four")
/' В данный момент указатель на последнем элементе после добавления элементов списка,
считываем в цикле с конца'/
Do
  Print GetList_S(List)
Loop Until PrevElement(List)=0
' Сейчас указатель на нуле, поэтому ставим его на первый элемент
FirstElement(List)
' Заполняем во все ячейки слово "Five"
Do
  SetList_S(List,"Five")
Loop Until NextElement(List)=0
' ставим указатель на последний элемент
LastElement(List)
' считываем с конца
Do
  Print GetList_S(List)
Loop Until PrevElement(List)=0
Sleep

Результат

four
three
two
one
Five
Five
Five
Five

Пример2

#Include "Linked_Lists.bi"
'Создаем новый список
Var list=NewList()
'добавляем элементы списка-числа типа INTEGER
For a As Integer=1 To 300
  AddElement_In(List,a)
Next
'добавляем элементы списка-строки
Dim b As String
For a As Integer=1 To 100
  b= b & "a"
  AddElement_S(List,b)
Next
' указатель на первый элемент
FirstElement(List)
'считываем числа
For a As Integer=1 To 300
  ? GetList_in(List);
  NextElement(List)
Next
? ""  ' отделим наши числа от строк в консоли
' считываем строки
Do
  ? GetList_S(List)
Loop Until NextElement(List)=0
sleep
'И все это в одном листе

Результат

Пример3

#Include "Linked_Lists.bi"
? "One list"
'Создаем новый список
Var list=NewList()
' добавляем элементы списка
AddElement_B(List,1)
AddElement_B(List,2)
AddElement_B(List,3)
AddElement_B(List,4)
AddElementHead_B(List,50)
InsertElement_B(List,3,100)
' указатель на конец списка
LastElement(List)
'считываем
Do
  Print GetList_B(List)
Loop Until PrevElement(List)=0
? "Two List"
'Создаем новый список
Var list1=NewList()
' добавляем элементы списка
AddElement_Sh(List1,3000)
AddElement_Sh(List1,5000)
AddElement_Sh(List1,6000)
AddElement_Sh(List1,7000)
AddElementHead_SH(List1,2000)
InsertElement_SH(List1,3,4000)
' указатель на начало
SelectElement(List1,1)
'считываем второй список
Do
  Print GetList_SH(List1)
Loop Until NextElement(List1)=0
? "Copy One to Two List"
' копируем из одного списка в другой, попутно преобразуя тип
For a As Integer=1 To 6
  SetValueElement_SH(list1,a,Cast(Short,GetValueElement_B(List,a)))
Next
DeleteElement(List1,3)
DeleteElement(List1,1)
' указатель на начало
FirstElement(List1)
' считываем второй список
do
  Print GetList_SH(List1)
Loop Until NextElement(List1)=0
Sleep

Результат

One list
4
3
2
100
1
50
Two List
2000
3000
4000
5000
6000
7000
Copy One to Two List
1
2
3
4

Пример4

#Include "Linked_Lists.bi"
'Создаем новый список
Var list=NewList()
' добавляем элементы списка
For a As Byte=1 To 8
  AddElement_S(List,Str(a))
Next
MoveElement(List,5,8)
InsertElement_S(list,8,"9")
firstElement(List)
Do
  print GetList_S(List)
Loop Until nextElement(List)=0
Sleep

Результат

1
2
3
4
6
7
8
9
5

Created with the Personal Edition of HelpNDoc: Free EPub producer