Edisi pembelajaran bahasa Indonesia. Kode dan keluarannya tetap seperti aslinya.
Stack dalam C: prinsip LIFO
Implementasikan push, pop, dan pemeriksaan puncak dengan pengecekan batas yang jelas.

Elemen yang terakhir dimasukkan ke stack dikeluarkan terlebih dahulu. Dalam implementasi array, top menandai puncak atau keadaan khusus stack kosong. Pilih satu konvensi dan gunakan secara konsisten.
Sebelum push, periksa kapasitas; sebelum pop dan peek, pastikan ada elemen. Jika memungkinkan, pisahkan status kesalahan dari nilai hasil agar data yang sah tidak disalahartikan sebagai kesalahan.
Operasi dasar memerlukan O(1). Uji pengisian penuh, pengosongan penuh, dan operasi bergantian. Stack berguna untuk pembatalan tindakan, penguraian ekspresi, dan penyimpanan pemanggilan yang tertunda.
Kode C
#include <stdio.h>
#define MAX 100
typedef struct {
int items[MAX];
int top;
} Stack;
void initStack(Stack *s) { s->top = -1; }
int isFull(Stack *s) { return s->top == MAX - 1; }
int isEmpty(Stack *s) { return s->top == -1; }
void push(Stack *s, int val) {
if (isFull(s)) {
printf("Stack Overflow!\n");
return;
}
s->items[++(s->top)] = val;
}
int pop(Stack *s) {
if (isEmpty(s)) {
printf("Stack Underflow!\n");
return -1;
}
return s->items[(s->top)--];
}
int peek(Stack *s) {
if (isEmpty(s)) return -1;
return s->items[s->top];
}
int main() {
Stack s;
initStack(&s);
push(&s, 10);
push(&s, 20);
push(&s, 30);
printf("Top element: %d\n", peek(&s));
printf("Popped: %d\n", pop(&s));
printf("New top: %d\n", peek(&s));
return 0;
}Buka di kompilerKeluaran yang diharapkan
Top element: 30 Popped: 30 New top: 20
Pertanyaan umum
Mengapa kode dan keluarannya tetap dalam bahasa Inggris?
Kata kunci, pengenal, dan teks yang diperiksa tes dipertahankan agar program tidak berubah. Penjelasan dan kontrol telah diterjemahkan.