Konuyu görüntüle
IUCODERS FORUM > Programlama > C / C++ > c++ linked list
Yazar
carrillof


avatar

banlandı
Kayıt: 19.09.2008
20.10.2008-23:32 #51858
naranja yazdi
 
peki arkadaşlar,

(1) bi yapıdaki pointer a ulaşırken -> işaretini kullanıyoruz, ancak integer bi değişken için . kullanılmıyor mu, yani d.info olması gerekmiyor mu neden -> kullanmak gerekiyor?

bir diğeri de

q->next=p->next

(2) burada p ve q nun next leri birer pointer, biz bu eşitliği yapınca q->next, p nin next i içerisinde bulunan değeri mi yoksa p nin nextinin adresini mi tutuyor?


(1) d değişkeni NODEPTR olarak tanımlanmış (struct node *) ve dolayısıyla kendisi bir pointer'dır.

(2) pointer dediğimiz şey de aslında int tipinde veri tutan bir değişkendir. çok basit düşünmek lazım.
q->next=p->next ataması ile int tipinde a=b ataması arasında hiç bir fark yoktur. sadece pointer'ın tuttuğu değeri adres olarak kullandığımız için biraz karmaşık geliyor. yani aslında istediğiniz bir int değerini bir adres gibi göstererek (işletim sisteminin verdiği izinler çerçevesinde) bellekteki veriler ile istediğiniz gibi oynayabilirsiniz.







Yazar
ascii


avatar
öz
Kayıt: 26.07.2006
20.10.2008-23:32 #51860
bu da display fonksiyonu...

void displayList(NODEPTR p)
{
	for(NODEPTR temp = p; temp->next != NULL; temp = temp->next)
		cout << temp->info << endl;
}








Windows is a misunderstood Unix.


Yazar
naranja


avatar
Kraliyet Ailesinden
Kayıt: 18.10.2007
20.10.2008-23:36 #51861
sağolun arkadaşlar cevaplarınız için.

bu arada oğuzhan hocanın bugün verdiği şey bu değil, bunlar daha önce verilmişti. bugün verdiği ağaç ile ilgiliydi.





Kaybolur hayatIn tarifsiz ahengi;
Zaman bir tablodur düser duvarlardan.






Yazar
ascii


avatar
öz
Kayıt: 26.07.2006
20.10.2008-23:39 #51862
bu arada kısa bir not arkadaşlar. structları typedef ederken derleyicinize göre problem alabilirsiniz. c++ da structlar tüm elemanları public olan sınıflardır aslında. o yüzden c++ struclarının typedef i c de çalışmayabilir. ama c de yanlış define edilmiş bir yapı c++ derleyicisi tarafından doğru kabul edilebilir.





Windows is a misunderstood Unix.


Yazar
fealin


avatar

Kayıt: 30.01.2006
21.10.2008-21:07 #51873
naranja yazdi
 
peki arkadaşlar,

bi yapıdaki pointer a ulaşırken -> işaretini kullanıyoruz, ancak integer bi değişken için . kullanılmıyor mu, yani d.info olması gerekmiyor mu neden -> kullanmak gerekiyor?


eğer structın içindeki değere pointer üzerinden ulaşmaya çalışıyorsan -> kullanıyorsun yani
NODEPTR p;
p=getnode();
p->info....;
gibi ama direk pointer kullanmadan node olarak tanımlarsan . kullanıyorsun yani:

NODE p;
p.info; gibi





there is no emotion; there is peace
there is no ignorance; there is knowledge
there is no passion; there is serenity
there is no chaos; there is harmony
there is no death: there is the force
1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb