スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スタック(1)

スタック(s)をポインタを用いて実装し、push(x,s)とpop(s)およびリストの中身を表示する手続きを作成する。


#include
#include

typedef struct{

int ptr;
int *stk;
}Stack;

void push(int val, Stack *s){
s->stk[s->ptr] = val;
s->ptr++;

}

int pop(Stack *s){
if(s->ptr <= 0){
puts("stack underflow");
exit(EXIT_FAILURE);
}else{
s->ptr--;
int retval = s->stk[s->ptr];
s->stk[s->ptr] = 0;
return retval;
}
}
void printList(Stack *s){
int i;
for(i=0;i<10;i++)
printf("[%d]:%d\n", i, s->stk[i]);
}

int main(void){

Stack *s;
int command;
int val;

/* initialize */
s = (Stack*)malloc(sizeof(Stack));
s->ptr = 0;
s->stk = calloc(10, sizeof(int));

while(1){

puts("1:push 2:pop 3:printList 4:quit");
scanf("%d", &command);

switch(command){

case 1:
puts("input data");
scanf("%d", &val);
push(val, s);
break;
case 2:
puts("pop");
printf("%d\n", pop(s));
break;
case 3:
printList(s);
break;

case 4:
puts("end");
exit(EXIT_SUCCESS);
break;

}
fflush(stdin);

}



}
スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。