DataContainers ›› Map (dictionary)

プログラム言語 FreeBasic


Map (dictionary)

辞書(キー、データ)のように機能する連想コンテナ。
キーは順序付けられています。 つまり、並べ替えられた形式になっています。
ハッシュテーブルと同様のインターフェイスを備えており、違いは作業速度だけです。
ほとんどの場合ハッシュテーブルの方が高速ですが、一部のデータでは、マップの方が高速な場合もあります。
必要に応じて、次の例のように、(木探査メソッドを使って)並べ替えられた形式ですべてのキーを取得できます:


#include "window9.bi"

Type MAPSTRUCT
    As Zstring Ptr nKey
    As Any Ptr nData
    As MAPSTRUCT Ptr pLeft
    As MAPSTRUCT Ptr pRight
    As Byte bHeight
End Type

Type MAPMAINSTRUCT
    As MAPSTRUCT Ptr pRoot
    As Byte bFlagDelete
    As Long iSizeMap
end type

Sub InOrder(pRoot As MAPSTRUCT Ptr)  
    If pRoot <> 0 Then
        inOrder(pRoot->pLeft)
        if pRoot->nData then
            Print *pRoot->nKey , pRoot->nData
        endif
        inOrder(pRoot->pRight)
    Endif
End Sub

dim p as MAPMAINSTRUCT ptr = CreateMap()
SetValueMap(p , "555" , cast(any ptr , cint(5)))
SetValueMap(p , "111" , cast(any ptr , cint(1)))
SetValueMap(p , "333" , cast(any ptr , cint(3)))
InOrder(p->pRoot)
DeleteMap(p)
Sleep


http://mneniya.ucoz.ru/

←リンク元に戻る Window9 トップに戻る FreeBASIC マニュアル トップに戻る
ロシア語オリジナル:https://users.freebasic-portal.de/freebasicru/window9lib/window9.html