#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
int stack[SIZE];
int top = -1; // เริ่มต้น stack ว่าง
void push(int value) {
if (top >= SIZE - 1) {
printf("❌ Stack Overflow: ไม่สามารถ push ค่าได้ เพราะ stack เต็ม\n"); } else {
top++;
stack[top] = value;
printf("✅ Push %d ลงใน stack\n", value
); }
}
void pop() {
if (top < 0) {
printf("❌ Stack Underflow: ไม่สามารถ pop ค่าได้ เพราะ stack ว่าง\n"); } else {
printf("✅ Pop ค่า %d ออกจาก stack\n", stack
[top
]); top--;
}
}
void display() {
if (top < 0) {
} else {
printf("📦 ค่าที่อยู่ใน stack: "); for (int i = 0; i <= top; i++) {
}
}
}
int main() {
int choice, value;
while (1) {
printf("\n========= เมนู Stack =========\n"); scanf("%d", &choice);
switch (choice) {
case 1:
printf("ป้อนค่าที่ต้องการ push: "); scanf("%d", &value);
push(value);
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
printf("👋 ออกจากโปรแกรมแล้ว\n"); default:
printf("⚠️ เลือกเมนูไม่ถูกต้อง!\n"); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgU0laRSA1CgppbnQgc3RhY2tbU0laRV07CmludCB0b3AgPSAtMTsgIC8vIOC5gOC4o+C4tOC5iOC4oeC4leC5ieC4mSBzdGFjayDguKfguYjguLLguIcKCnZvaWQgcHVzaChpbnQgdmFsdWUpIHsKICAgIGlmICh0b3AgPj0gU0laRSAtIDEpIHsKICAgICAgICBwcmludGYoIuKdjCBTdGFjayBPdmVyZmxvdzog4LmE4Lih4LmI4Liq4Liy4Lih4Liy4Lij4LiWIHB1c2gg4LiE4LmI4Liy4LmE4LiU4LmJIOC5gOC4nuC4o+C4suC4sCBzdGFjayDguYDguJXguYfguKFcbiIpOwogICAgfSBlbHNlIHsKICAgICAgICB0b3ArKzsKICAgICAgICBzdGFja1t0b3BdID0gdmFsdWU7CiAgICAgICAgcHJpbnRmKCLinIUgUHVzaCAlZCDguKXguIfguYPguJkgc3RhY2tcbiIsIHZhbHVlKTsKICAgIH0KfQoKdm9pZCBwb3AoKSB7CiAgICBpZiAodG9wIDwgMCkgewogICAgICAgIHByaW50Zigi4p2MIFN0YWNrIFVuZGVyZmxvdzog4LmE4Lih4LmI4Liq4Liy4Lih4Liy4Lij4LiWIHBvcCDguITguYjguLLguYTguJTguYkg4LmA4Lie4Lij4Liy4LiwIHN0YWNrIOC4p+C5iOC4suC4h1xuIik7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50Zigi4pyFIFBvcCDguITguYjguLIgJWQg4Lit4Lit4LiB4LiI4Liy4LiBIHN0YWNrXG4iLCBzdGFja1t0b3BdKTsKICAgICAgICB0b3AtLTsKICAgIH0KfQoKdm9pZCBkaXNwbGF5KCkgewogICAgaWYgKHRvcCA8IDApIHsKICAgICAgICBwcmludGYoIvCfk60gU3RhY2sg4Lin4LmI4Liy4LiHXG4iKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCLwn5OmIOC4hOC5iOC4suC4l+C4teC5iOC4reC4ouC4ueC5iOC5g+C4mSBzdGFjazogIik7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gdG9wOyBpKyspIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCAiLCBzdGFja1tpXSk7CiAgICAgICAgfQogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgY2hvaWNlLCB2YWx1ZTsKCiAgICB3aGlsZSAoMSkgewogICAgICAgIHByaW50ZigiXG49PT09PT09PT0g4LmA4Lih4LiZ4Li5IFN0YWNrID09PT09PT09PVxuIik7CiAgICAgICAgcHJpbnRmKCIxLiBQdXNoXG4iKTsKICAgICAgICBwcmludGYoIjIuIFBvcFxuIik7CiAgICAgICAgcHJpbnRmKCIzLiDguYHguKrguJTguIcgc3RhY2tcbiIpOwogICAgICAgIHByaW50ZigiNC4g4Lit4Lit4LiB4LiI4Liy4LiB4LmC4Lib4Lij4LmB4LiB4Lij4LihXG4iKTsKICAgICAgICBwcmludGYoIuC5gOC4peC4t+C4reC4geC5gOC4oeC4meC4uSAoMS00KTogIik7CiAgICAgICAgc2NhbmYoIiVkIiwgJmNob2ljZSk7CgogICAgICAgIHN3aXRjaCAoY2hvaWNlKSB7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIHByaW50Zigi4Lib4LmJ4Lit4LiZ4LiE4LmI4Liy4LiX4Li14LmI4LiV4LmJ4Lit4LiH4LiB4Liy4LijIHB1c2g6ICIpOwogICAgICAgICAgICAgICAgc2NhbmYoIiVkIiwgJnZhbHVlKTsKICAgICAgICAgICAgICAgIHB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHBvcCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGRpc3BsYXkoKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBwcmludGYoIvCfkYsg4Lit4Lit4LiB4LiI4Liy4LiB4LmC4Lib4Lij4LmB4LiB4Lij4Lih4LmB4Lil4LmJ4LinXG4iKTsKICAgICAgICAgICAgICAgIGV4aXQoMCk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBwcmludGYoIuKaoO+4jyDguYDguKXguLfguK3guIHguYDguKHguJnguLnguYTguKHguYjguJbguLnguIHguJXguYnguK3guIchXG4iKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
int stack[SIZE];
int top = -1; // เริ่มต้น stack ว่าง
void push(int value) {
if (top >= SIZE - 1) {
printf("❌ Stack Overflow: ไม่สามารถ push ค่าได้ เพราะ stack เต็ม\n");
} else {
top++;
stack[top] = value;
printf("✅ Push %d ลงใน stack\n", value);
}
}
void pop() {
if (top < 0) {
printf("❌ Stack Underflow: ไม่สามารถ pop ค่าได้ เพราะ stack ว่าง\n");
} else {
printf("✅ Pop ค่า %d ออกจาก stack\n", stack[top]);
top--;
}
}
void display() {
if (top < 0) {
printf("📭 Stack ว่าง\n");
} else {
printf("📦 ค่าที่อยู่ใน stack: ");
for (int i = 0; i <= top; i++) {
printf("%d ", stack[i]);
}
printf("\n");
}
}
int main() {
int choice, value;
while (1) {
printf("\n========= เมนู Stack =========\n");
printf("1. Push\n");
printf("2. Pop\n");
printf("3. แสดง stack\n");
printf("4. ออกจากโปรแกรม\n");
printf("เลือกเมนู (1-4): ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("ป้อนค่าที่ต้องการ push: ");
scanf("%d", &value);
push(value);
break;
case 2:
pop();
break;
case 3:
display();
break;
case 4:
printf("👋 ออกจากโปรแกรมแล้ว\n");
exit(0);
default:
printf("⚠️ เลือกเมนูไม่ถูกต้อง!\n");
}
}
return 0;
}