|
Derleyici Tasarımı
|
Basit stack. Ayrıntılar...
#include <stddef.h>Bu dosyanın kaynak koduna git.
Sınıflar | |
| struct | stack |
| stack. Ayrıntılar... | |
Fonksiyonlar | |
| void | stack_init (struct stack *stack, size_t item_size) |
| Yeni bir stack oluşturur. | |
| void | stack_destroy (struct stack *stack) |
| stack tarafından ayrılmış balleği temizler. | |
| void * | stack_pop (struct stack *stack) |
En üstteki elemanı (top) stack'ten silip döner. | |
| void | stack_push (struct stack *stack, void *item) |
| stack'in en üstüne elamanı ekler. | |
| void * | stack_top (struct stack *stack) |
| stack'in en üstündeki elemanı döner. | |
| void * | stack_at (struct stack *stack, size_t index) |
Baştan indexinci elemanı döner. | |
| size_t | stack_len (const struct stack *stack) |
| Toplam eleman sayısını döner. | |
Basit stack.
Genelde, stack'ler random accesse izin vermez, stack'teki bir elemana indeksiyle erişilmez. Katı stack implementasyonları, sadece top elemana erişim izni (pop/peek) verir; hatta toplam eleman sayısını da saklar ve yalnızca stack'in boş olup olmadığını belirten bir fonksiyon sunar.
Bu stack implementasyonu daha esnektir:
Ancak yine de sadece top elemanı çekip, toptan eleman ekleyip çıkarabilirsiniz.
stack.h dosyasında tanımlanmıştır.
| void stack_init | ( | struct stack * | stack, |
| size_t | item_size | ||
| ) |
Yeni bir stack oluşturur.
stack için gerekli bellek ayırır. item_size parametresi, kullanıcının ekleyeceği elemanların boyutunu belirtir.