LinkedList

Previous Next

Язык программирования FreeBasic

 

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

Пример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 



Пример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



Пример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



http://mneniya.ucoz.ru/

Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation