int main() { int N = 50; srand(time(0)); stack *s = StackNew(); printf("Node size = %ld Stack size = %ld\n", sizeof(node), sizeof(stack)); for (int i = 0; i < N; i++) { printf("Push %d\n", i); StackPush(s, i); } StackPrint(s); for (int i = 0; i < N; i++) { int n = StackPop(s); printf("Pop %d\n", n); if (i % 2 == 0) printf("Peek = %d\n", StackPeek(s)); } printf("Size = %d\n", s->size); StackFree(s); long sum = sizeof(node) * 50 + sizeof(stack); printf("%ld total bytes\n", sum); }
int main(void) { Stack s; if(StackAlloc(&s, 100) == -1){ puts("すたっくの確保に失敗しました。"); return (1); } while(1){ int m, x; printf("現在のでーた数:%d/%d\n", StackNo(&s), StackSize(&s)); printf("(1)ぷっしゅ (2)ぽっぷ (0)終了 :"); scanf("%d", &m); if(m == 0){ break; } switch (m){ case 1: printf("でーた:"); scanf("%d", &x); if(StackPush(&s, x) == -1){ puts("すたっくへのぷっしゅに失敗しました。"); } break; case 2: if(StackPop(&s, &x) == -1){ puts("ぽっぷできません。"); }else{ printf("ぽっぷしたでーたは%dです。\n", x); } break; } } StackFree(&s); return (0); }