C Var Olan Kayitlari Ekleme

C’de Var Olan Kayıtları Ekleme

C programlama dilinde, var olan kayıtlara veri eklemek, veri yapılarını yönetmenin önemli bir yönüdür. Bu makale, C’de var olan kayıtlara veri eklemenin çeşitli yöntemlerini ayrıntılı bir şekilde açıklayacaktır.

Dinamik Bellek Tahsisi

Dinamik bellek tahsisi, var olan kayıtlara veri eklemek için en yaygın kullanılan yöntemdir. Bu yöntem, malloc() ve realloc() fonksiyonlarını kullanır.

malloc() Fonksiyonu:

malloc() fonksiyonu, belirtilen boyut kadar bellek tahsis eder ve bu belleğin adresini bir işaretçi olarak döndürür.

c
int *ptr = (int *) malloc(sizeof(int));

realloc() Fonksiyonu:

realloc() fonksiyonu, daha önce malloc() ile tahsis edilmiş bir bellek bloğunu yeniden boyutlandırır. Bu, var olan kayıtlara veri eklemek için kullanılabilir.

c
ptr = (int *) realloc(ptr, sizeof(int) * yeni_boyut);

Diziler

Diziler, var olan kayıtlara veri eklemek için de kullanılabilir. Diziler, sabit boyutlu veri yapısıdır, bu nedenle veri eklemeden önce dizinin boyutunun yeterince büyük olduğundan emin olmak önemlidir.

c
int dizi[10];
dizi[9] = 10; // 10. elemanı 10 olarak ayarlar

Bağlı Listeler

Bağlı listeler, var olan kayıtlara veri eklemek için esnek bir veri yapısıdır. Bağlı listeler, her biri bir sonraki öğenin adresini içeren düğümlerden oluşur.

“`c
struct dugum {
int veri;
struct dugum *sonraki;
};

struct dugum *bas = NULL;

void sonaEkle(int veri) {
struct dugum yeni = (struct dugum ) malloc(sizeof(struct dugum));
yeni->veri = veri;
yeni->sonraki = NULL;

if (bas == NULL) {
bas = yeni;
} else {
struct dugum *gecici = bas;
while (gecici->sonraki != NULL) {
gecici = gecici->sonraki;
}
gecici->sonraki = yeni;
}
}
“`

İkili Ağaçlar

İkili ağaçlar, var olan kayıtlara veri eklemek için hiyerarşik bir veri yapısıdır. İkili ağaçlar, her biri en fazla iki alt ağaca sahip olan düğümlerden oluşur.

“`c
struct dugum {
int veri;
struct dugum sol;
struct dugum
sag;
};

struct dugum *kok = NULL;

void ekle(int veri) {
struct dugum yeni = (struct dugum ) malloc(sizeof(struct dugum));
yeni->veri = veri;
yeni->sol = NULL;
yeni->sag = NULL;

if (kok == NULL) {
kok = yeni;
} else {
struct dugum *gecici = kok;
while (1) {
if (veri < gecici->veri) {
if (gecici->sol == NULL) {
gecici->sol = yeni;
break;
} else {
gecici = gecici->sol;
}
} else {
if (gecici->sag == NULL) {
gecici->sag = yeni;
break;
} else {
gecici = gecici->sag;
}
}
}
}
}
“`

Faydalı Kaynaklar


Yayımlandı

kategorisi