標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
XPG4 |
両方 |
#define _XOPEN_SOURCE
#include <search.h>
void *twalk(const void *root, void (*action)(const void *, VISIT, int));
typedef enum {preorder, postorder, endorder, leaf } VISIT;
上記は (<search.h> ヘッダーに定義されているとおり)、ノードが視察されたのは
(ツリーの深さ優先で、左から右への巡回時に)、1 回目であるか、2 回目であるか、3 回目であるか、あるいはそのノードが葉であるかによって決まります。3 番目の引数は、ルートがレベル・ゼロのツリー内のノードの
レベルです。スレッド化の動作: tsearch() - 二分木探索を参照してください。
C++ の特殊な動作: C と C++ のリンケージ規約は非互換性のため、twalk() は C++ 関数ポインターを引数として受け取ることができません。C++ 関数ポインターを twalk() へ渡そうとすると、コンパイラーが これにエラーのフラグを付けます。C 関数または C++ 関数を外部「C」として宣言することにより、twalk() にその関数を渡すことができます。
twalk() は、値を戻しません。
エラーは定義されません。