/* ppps_int_stack.h [サンプルライブラリ] int型のスタック author: K.Y (Programming Place Plus) version 1.0.2 '2019/9/20 ・Webサイト側が C99規格へ対応したことに合わせて、コードを修正。 コメントスタイルと、変数宣言位置を変えた。 bool型を使う。 1.0.1 '2013/1/26 ・ppps_int_stack_try_pop関数を追加。 1.0.0 '2012/7/7 */ #ifndef PPPS_INT_STACK_H #define PPPS_INT_STACK_H #include #include /* スタック型 */ typedef struct PPPSIntStack_tag* PPPSIntStack; /* スタックを作る 引数: size: 格納できる要素数 戻り値: 作成されたスタック。 使い終わったら、ppps_int_stack_delete関数に渡して削除する。 */ PPPSIntStack ppps_int_stack_create(size_t size); /* スタックを削除する 引数: stack: スタック */ void ppps_int_stack_delete(PPPSIntStack stack); /* スタックに要素を積む 引数: stack: スタック value: 積む要素 */ void ppps_int_stack_push(PPPSIntStack stack, int value); /* スタックから要素を降ろす 引数: stack: スタック 戻り値: 降ろされた要素 要素が空の場合の動作は未定義。 */ int ppps_int_stack_pop(PPPSIntStack stack); /* スタックから要素を降ろす (成否判定付き) 引数: stack: スタック p: 取り出された要素を受け取るアドレス。 戻り値: 要素を取り出せたら true、取り出せなかったら false を返す。 false が返された場合は、引数p が指す先には何も格納されない。 */ bool ppps_int_stack_try_pop(PPPSIntStack stack, int* p); /* スタックが空かどうか調べる 引数: stack: スタック 戻り値: スタックが空であれば true を返し、空でなければ false を返す。 */ bool ppps_int_stack_is_empty(PPPSIntStack stack); #endif