Часто в прогоамме требуется использовать такие элементы как очереди. Превожу пример создания очереди на PB с использованием кучи(heap):
#If Not %Def(%PBlistUsingHeapFunctions)
%PBqueueUsingHeapFunctions=1
%usemacros=1
#If Not %Def(%WINAPI)
#Include "Win32Api.inc"
#EndIf
Type FileList
nxt As FileList Ptr
Str As Asciiz Ptr
Lng As Dword
End Type
Global hHeap As Dword
Global First As FileList Ptr
Global Last As FileList Ptr
Macro InitList
hHeap=GetProcessHeap()
End Macro
Function pop(ByRef str As String) As Dword
Local x As FileList Ptr
If First Then
x=First
First=@First.nxt
str=Space$(@x.lng)
MoveMemory(ByVal StrPtr(str),ByVal @x.str,@x.lng)
HeapFree(hHeap,0,@x.str)
HeapFree(hHeap,0,x)
End If
End Function
Function push(Txt As String) As Dword
Local element,y As FileList Ptr, s As Asciiz Ptr
element=HeapAlloc(hHeap,%HEAP_ZERO_MEMORY,SizeOf(FileList))
s=HeapAlloc(hHeap,%HEAP_ZERO_MEMORY,Len(Txt)+1)
If element=0 Or s=0 Then
Exit Function
End If
@element.str=s
@element.Lng=Len(Txt)
MoveMemory(ByVal s,ByVal StrPtr(txt),ByVal Len(txt))
If First Then
@Last.nxt=element
Last=element
Else
First=element
Last=element
End If
End Function
#EndIf
Если у кого есть примеры деревьев(АВЛ, Фибоначи), стеков и т.д. если можно выложите.(код также можно взять здесь http://piv-tula.narod.ru/powerbasic/queue.inc)
сли у кого есть примеры деревьев(АВЛ, Фибоначи), стеков и т.д. если можно выложите.(код также можно взять здесь http://piv-tula.narod.ru/powerbasic/queue.inc)
Ищи такие примеры в POFFS, там все это должно быть...