双方向リスト
[低レベル処理関数]


説明

fnFIE_dlist_* 関数群は、双方向リストを扱うための関数群です。 リストはF_DLIST_ELEM構造体のみによって構成され、下図のようになります。

dlist.png

本リファレンスでは、図中黄色のF_DLIST_ELEM構造体のインスタンスを「要素」、 図中緑色の各要素が持つデータを「データ」と表現します。 本関数群でメモリ操作されるのは、要素のみであり、それぞれが持つデータに関しては 操作されません。従って、リストに要素を追加したり、削除したりする場合は、 それがもつデータをユーザー側が管理をしなければいけません。

本関数群には、リストと要素を入力し、要素を基にリストを操作する関数も提供されていますが、 リストと要素の整合性についてはチェックされません(速度重視のため)。 そのため、要素とリストの整合性については、ユーザー側が管理・保障する必要があります。
fnFIE_dlist_find_listelem_idx() を使用すると、指定した要素がリストに対して有効で あるかどうかの確認ができます。


データ構造

struct  F_DLIST_ELEM
 双方向リスト要素 [詳細]

関数

INT FVALGAPI fnFIE_dlist_push_back (F_DLIST_ELEM **listtop, VOID *p)
 末尾に追加
VOID *FVALGAPI fnFIE_dlist_pop_back (F_DLIST_ELEM **listtop)
 末尾の要素を取り出して削除
INT FVALGAPI fnFIE_dlist_push_front (F_DLIST_ELEM **listtop, VOID *p)
 先頭に追加
VOID *FVALGAPI fnFIE_dlist_pop_front (F_DLIST_ELEM **listtop)
 先頭から要素を取り出して削除
INT FVALGAPI fnFIE_dlist_findit (F_DLIST_ELEM **listtop, const VOID *p)
 *pを持つ要素の番号を取得
INT FVALGAPI fnFIE_dlist_erase (F_DLIST_ELEM **listtop, INT idx)
 idx番目の要素を削除
VOID FVALGAPI fnFIE_dlist_clear (F_DLIST_ELEM **listtop)
 要素を全部削除
INT FVALGAPI fnFIE_dlist_get_sz (F_DLIST_ELEM **listtop)
 リストのサイズを取得
VOID *FVALGAPI fnFIE_dlist_getat (F_DLIST_ELEM **listtop, INT idx)
 idx番目のデータを取得
F_DLIST_ELEM *FVALGAPI fnFIE_dlist_get_listelem (F_DLIST_ELEM **listtop, INT idx)
 idx番目の要素を取得
F_DLIST_ELEM *FVALGAPI fnFIE_dlist_get_tail_listelem (F_DLIST_ELEM **listtop)
 リスト末尾の要素を取得
INT FVALGAPI fnFIE_dlist_insert_after (F_DLIST_ELEM *listelem, VOID *p)
 指定した要素の直後に新たな要素を挿入
INT FVALGAPI fnFIE_dlist_insert_before (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem, VOID *p)
 指定した要素の直前に新たな要素を挿入
INT FVALGAPI fnFIE_dlist_remove_after (F_DLIST_ELEM *listelem)
 指定した要素の直後の要素を削除
INT FVALGAPI fnFIE_dlist_remove_before (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem)
 指定した要素の直前の要素を削除
INT FVALGAPI fnFIE_dlist_remove_all_after (F_DLIST_ELEM *listelem)
 指定した要素の後にある要素全てを削除
INT FVALGAPI fnFIE_dlist_remove_all_before (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem)
 指定した要素の前にある要素全てを削除
INT FVALGAPI fnFIE_dlist_remove_non_designated (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem)
 指定した要素以外を削除
INT FVALGAPI fnFIE_dlist_remove (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem)
 指定した要素を削除
INT FVALGAPI fnFIE_dlist_find_listelem_idx (F_DLIST_ELEM **listtop, F_DLIST_ELEM *listelem)
 指定した要素の要素番号を取得

関数

INT FVALGAPI fnFIE_dlist_push_back ( F_DLIST_ELEM **  listtop,
VOID *  p 
)

末尾に追加

引数:
[in] listtop リスト先頭
[in] p 追加するデータのポインタ
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
注意:
本関数での処理時間は、リストの要素数に比例します。 すなわち、リストの要素数がn個であった場合の計算オーダーはO(n)となります。

VOID* FVALGAPI fnFIE_dlist_pop_back ( F_DLIST_ELEM **  listtop  ) 

末尾の要素を取り出して削除

引数:
[in] listtop リスト先頭
戻り値:
正常終了時は取り出した要素が持つデータのポインタを返します。 異常終了した場合は、NULLを返します。
注意:
本関数での処理時間は、リストの要素数に比例します。 すなわち、リストの要素数がn個であった場合の計算オーダーはO(n)となります。

INT FVALGAPI fnFIE_dlist_push_front ( F_DLIST_ELEM **  listtop,
VOID *  p 
)

先頭に追加

引数:
[in] listtop リスト先頭
[in] p 追加するデータのポインタ
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ不正のため異常終了

VOID* FVALGAPI fnFIE_dlist_pop_front ( F_DLIST_ELEM **  listtop  ) 

先頭から要素を取り出して削除

引数:
[in] listtop リスト先頭
戻り値:
正常終了時は取り出した要素が持つデータのポインタを返します。 異常終了した場合は、NULLを返します。

INT FVALGAPI fnFIE_dlist_findit ( F_DLIST_ELEM **  listtop,
const VOID *  p 
)

*pを持つ要素の番号を取得

引数:
[in] listtop リスト先頭
[in] p 探し出すデータのアドレス
戻り値:
データが見つかった場合は、その要素番号を返します。 見つからなかった場合もしくは、入力が不正だった場合は、-1を返します。

INT FVALGAPI fnFIE_dlist_erase ( F_DLIST_ELEM **  listtop,
INT  idx 
)

idx番目の要素を削除

引数:
[in] listtop リスト先頭
[in] idx 削除する要素番号
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了

VOID FVALGAPI fnFIE_dlist_clear ( F_DLIST_ELEM **  listtop  ) 

要素を全部削除

引数:
[in] listtop リスト先頭

INT FVALGAPI fnFIE_dlist_get_sz ( F_DLIST_ELEM **  listtop  ) 

リストのサイズを取得

引数:
[in] listtop リスト先頭
戻り値:
リストの要素数を返します。入力が不正だった場合は、-1を返します。

VOID* FVALGAPI fnFIE_dlist_getat ( F_DLIST_ELEM **  listtop,
INT  idx 
)

idx番目のデータを取得

引数:
[in] listtop リスト先頭
[in] idx 取得する要素の番号
戻り値:
正常終了した場合は指定番号の要素が持つデータのポインタを返します。 入力が不正だった場合(idx が範囲外、listtop がNULL)は、NULLを返します。

F_DLIST_ELEM* FVALGAPI fnFIE_dlist_get_listelem ( F_DLIST_ELEM **  listtop,
INT  idx 
)

idx番目の要素を取得

引数:
[in] listtop リスト先頭
[in] idx 取得する要素の番号
戻り値:
正常終了した場合は指定番号の要素のポインタを返します。 入力が不正だった場合(idx が範囲外、listtop がNULL)は、NULLを返します。

F_DLIST_ELEM* FVALGAPI fnFIE_dlist_get_tail_listelem ( F_DLIST_ELEM **  listtop  ) 

リスト末尾の要素を取得

引数:
[in] listtop リスト先頭
戻り値:
正常終了した場合はリスト末尾の要素のポインタを返します。 入力が不正だった場合(listtop がNULL)は、NULLを返します。
注意:
本関数での要素取得に必要な計算時間は、リストの要素数に比例します。 すなわち、 リストの要素数がn個であった場合の計算オーダーはO(n)となります。

INT FVALGAPI fnFIE_dlist_insert_after ( F_DLIST_ELEM listelem,
VOID *  p 
)

指定した要素の直後に新たな要素を挿入

listelem に指定された要素の直後に新たな要素を追加します。

引数:
[in] listelem 指定した要素
[in] p 挿入するデータのポインタ
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_insert_before ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem,
VOID *  p 
)

指定した要素の直前に新たな要素を挿入

listelem に指定された要素の直前に新たな要素を追加します。

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
[in] p 挿入するデータのポインタ
戻り値:
F_ERR_NONE 正常終了
F_ERR_NOMEMORY メモリ不足エラー
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove_after ( F_DLIST_ELEM listelem  ) 

指定した要素の直後の要素を削除

listelem に指定された要素の直後の要素を削除します。

引数:
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
指定された要素の後ろに要素がない場合は処理を行わずに正常終了を返します。

注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove_before ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem 
)

指定した要素の直前の要素を削除

listelem に指定された要素の直前の要素を削除します。

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
指定された要素の前に要素がない場合は処理を行わずに正常終了を返します。

注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove_all_after ( F_DLIST_ELEM listelem  ) 

指定した要素の後にある要素全てを削除

listelem に指定された要素の後にある要素を全て削除します。

引数:
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
指定された要素の後ろに要素がない場合は処理を行わずに正常終了を返します。

注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove_all_before ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem 
)

指定した要素の前にある要素全てを削除

listelem に指定された要素の前にある要素を全て削除します。

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
指定された要素の前に要素がない場合は処理を行わずに正常終了を返します。

注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove_non_designated ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem 
)

指定した要素以外を削除

listelem に指定された要素以外の要素を全て削除します。

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_remove ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem 
)

指定した要素を削除

listelem に指定された要素を削除します。

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
戻り値:
F_ERR_NONE 正常終了
F_ERR_INVALID_PARAM パラメータ不正のため異常終了
注意:
要素のポインタはリストに対して有効である必要があります。 fnFIE_dlist_find_listelem_idx() を使用すると有効であるかどうかの確認ができます。

INT FVALGAPI fnFIE_dlist_find_listelem_idx ( F_DLIST_ELEM **  listtop,
F_DLIST_ELEM listelem 
)

指定した要素の要素番号を取得

引数:
[in] listtop リスト先頭
[in] listelem 指定した要素
戻り値:
指定した要素が見つかった場合は、その要素番号を返します。 見つからなかった場合もしくは、入力が不正だった場合は、-1を返します。


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:48 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2