#include #include // ノードの構造体 struct tfield { int data; struct tfield *pt; }; // ノード型(NODE)の型定義 typedef struct tfield NODE; NODE *talloc(void); void disp(NODE *p); void push(int, NODE **); int pop(int *, NODE **); int main(int argc, char *argv[]) { NODE *head = NULL; int n; char command[256]; while (1) { printf("Command: "); scanf("%s", command); switch(command[0]) { case 'i': case 'I': printf("Data: "); scanf("%d", &n); push(n, &head); break; case 'o': case 'O': if (pop(&n, &head) == -1) printf("Stack: Empty\n"); else printf("%d\n", n); break; case 'd': case 'D': disp(head); break; } if ((command[0] == 'q') || (command[0] == 'Q')) break; printf("\n"); } } // ノード新規生成 NODE *talloc(void) { NODE *p; p = (NODE *)malloc(sizeof(NODE)); if (p == NULL) { fprintf(stderr, "malloc() failed.\n"); exit(EXIT_FAILURE); } return p; } // リスト内容表示 void disp(NODE *p) { printf("Stack: "); if (p == NULL) printf("Empty\n"); else { while (p != NULL) { printf("%d ", p->data); p = p->pt; } printf("\n"); } } // データ入力 void push(int n, NODE **head) { } // データ出力 int pop(int *n, NODE **head) { }