Skip to content

Latest commit

 

History

History
24 lines (21 loc) · 1.84 KB

stack.md

File metadata and controls

24 lines (21 loc) · 1.84 KB

Stack

整数型のデータを格納することができる素朴なスタック構造です。
実態はほぼスタックポインタ(のように振る舞う変数)が付与されただけの整数型配列です。
基本的に全てのメンバ変数はstack.hで実装された関数によってのみ変更されるべきで、直接呼び出すべきではありません。1
現状は配列の拡張を実装していないので、どうしても拡張したい場合は新たに生成し直す必要があります。

メンバのサマリー

型 識別子 説明 備考
int size データを格納できる上限数です。
int *datavec 実際にデータを格納している領域の先頭を参照するポインタです。実装上は整数型ポインタですが実態は整数型配列です。スタックの「底」、つまり最も古いデータを参照しています。
int top スタックの「頂上」の上、次にデータが格納される場所を示す番号です。

関数のサマリー

型 識別子(引数型) 説明 備考
Stack *initStack(int) 構造体を新たに生成し、そのポインタを返します。
void freeStack(Stack*) 構造体を削除しメモリを解放します。
int stackLength(Stack*) 格納されているデータの個数を返します。
bool push(Stack*, int) 新たにデータを追加します。スタックが既に満杯の場合のみ偽値を返します。
int pop(Stack*) 頂上のデータを取り出します。スタックが空の場合はエラーメッセージを出力して終了します。
void printStack(Stack*) スタックの内容を[頂上->底]の順にリスト形式で標準出力します。

Footnotes

  1. Javaならば全てのフィールドがprivateで実装されているでしょう。