#include<stdio.h>
#include<stdlib.h>
#define LISTNUM 6
void stack();
void que();
struct cell{//cellの構造体
int element;
struct cell *next;//次のcellを指すポインタ
};
int main(int argc, char* argv[])
{
int celect;
printf("stack:1\nque:0\nboth:else\n");
scanf("%d",&celect);
if(celect==1) stack();
else if(celect==0) que();
else if(celect!=1&&celect!=0) {
stack();
que();
}
return 0;
}
void stack(){
printf("input\n");
int a,b;
struct cell *p,*first;
first=(cell *)malloc(sizeof(cell));
first->next=NULL;
for(a=0;a<LISTNUM;a++){
scanf("%d",&b);
p=(cell *)malloc(sizeof(cell));
p->element=b;
p->next=first->next;
first->next=p;
}
printf("stack:");
p=first->next;
while(p!=NULL){
printf("%d→",p->element);
p=p->next;//次のセルへ移動
}
printf("\n");
}
void que(){
printf("input\n");
int a,b;
struct cell *p,*q,*first;
first=(cell *)malloc(sizeof(cell));
first->next=NULL;
q=NULL;
for(a=0;a<LISTNUM;a++){
scanf("%d",&b);
p=(cell *)malloc(sizeof(cell));
p->element=b;
p->next=NULL;
if(first->next==NULL){
first->next=p;
}
else {
q->next=p;
}
q=p;
}
printf("que:");
p=first->next;
while(p!=NULL){
printf("%d→",p->element);
p=p->next;
}
printf("\n");
}
#include<stdio.h>
void push(int a,int i);
void pop(int);
void deque(int);
int a[6];//関数内でも同じ数字を操作するためにメインの外に書いた
int main(int argc,char *argv[]){
int c,i;
for(i=0;i<6;i++){
scanf("%d",&c);//取り込んだ数字を
push(c,i);//順番にpushする
}
printf("stack:");
while(i>0){//最後に入れたものから順に
i--;//数字を減らしていき
pop(i);//出力する
}
printf("\nque");
while(i<6){//最初に入れたものから順に
deque(i);//出力する
i++;
}
return 0;
}
//配列i番目にbを代入する関数
void push(int b,int i){
a[i]=b;
}
//配列i番目をprintする関数
void pop(int i){
printf("%d",a[i]);
}
//上と同じ
void deque(int i){
printf("%d",a[i]);
}
いまいちなできですが、表示的にはOKのはず。