スポンサーサイト

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

スタック(2)

スタックをリストを使って実装し、動作を確認する。また、その際に typedef を用い、新しい型 STACK 型として定義する。

#include
#include

typedef struct tagstack{
int data;
struct tagstack *prev;
struct tagstack *next;
}STACK;

STACK *stack_head = NULL;
STACK *stack_last = NULL;

void push(int val){
STACK *stack_new = (STACK*)malloc(sizeof(STACK));
stack_new->data = val;
stack_new->next = NULL;
stack_new->prev = NULL;
if(stack_head == NULL){
stack_head = stack_last = stack_new;
}else{
stack_last->next = stack_new;
stack_new->prev = stack_last;
stack_last = stack_new;
}

}

void printStack(void){
STACK *thisStack;
for(thisStack=stack_head;thisStack!=NULL;thisStack=thisStack->next)
printf("%d\n", thisStack->data);


}


int main(void){

int command , val;

do{

puts("### select menu ###");
puts("1:push 2:pop 3:print stack 4:quit");
puts("###################");
scanf("%d", &command);

switch(command){

case 1:
puts("input data");
scanf("%d", &val);
push(val);
break;
case 2:
break;
case 3:
printStack();
break;
case 4:
puts("end");
exit(EXIT_SUCCESS);
break;

default:
puts("command is invalid.");
exit(EXIT_FAILURE);

}

fflush(stdin);

}while(command != 0);

return 0;

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

tjnet777

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

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

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

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

この人とブロともになる

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