İki Yönlü Bağlantılı Liste

Veritabanı Organizasyonu

Ekleme: İlk nodeyi gösteren işaretçi NULL ise ilk ve son’u eklenecek node yaparız. ileri, geri işaretçilerini NULL yaparsınız.

eğer başka nodeler varsa son node eklenecek olanı, eklencek olan son nodeyi işaret eder. son nodeye eklenecek olan yapılır. son nodenin ilerisi NULL yapılır.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct blist2{
	int x; blist2 *geri; blist2 *ileri;
};
typedef blist2 bliste2;

bliste2 *root=NULL, *ilk2=NULL, *son2=NULL;

void ekle(bliste2 *ek)
{
	// ilk ve son null ise bu liste oluşmamıştır.
	if (ilk2==NULL) { printf("boş ekleniyor.");
		ilk2=ek;
		son2=ek;
		ilk2->geri=NULL;
		ilk2->ileri=NULL;
	} else
	{
		// demekki halihazirda kayit var.
		son2->ileri=ek;
		ek->geri=son2;
		son2=ek;
		son2->ileri=NULL;		
	}
	
}

int listeleme()
{
	bliste2 *p;
	p=ilk2;
	if (p==NULL) return -1;
	
	while(p){
		printf("- %d -",p->x);
		p=p->ileri;
	}
	return 0;
}

bliste2 *node_olustur(int veri)
{ bliste2 *ek;
	ek= (bliste2 *) malloc(sizeof(bliste2));
	ek->geri=NULL; ek->ileri=NULL; ek->x = veri;
	return ek;
}


int main()
{ 
	bliste2 *ilk2=NULL, *son2=NULL;
	
	ekle(node_olustur(5));
	ekle(node_olustur(15));
	ekle(node_olustur(30));

listeleme();
}



Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir