C Programlama: Veri Yapıları Sorusu Acil!
-
Veri yapılarını deitelden çalışıyorum. Tam anlaşılır değil.
mesela 12.3 örnekte...
Bold kısımlar merak ettiğim yerlerdir.
struct listeDugumu{
char veri;
struct lsteDugumu *sonrakiPtr;
}
typedef struct listeDugumu ListeDugumu;
typedef ListeDugumu *ListeDugumuPtr; // bu satırı anlamadım. Typedef eş anlamlı yapı tipleri yaratman için kullanılıyordu. Burada typedef le ne yapmaya çalışmış anlamadım... Buradaki gösterici şimdi neyi gösterecek ?? Aşağıda bir fonkisyon var
main()
{
...
ListeDugumuPtr baslangicPtr=NULL; //ListeDugumuPtr suan neyi temsil ediyor ki o tipte baslangicPtr diye degisken yaratıp NULL atadik.
printf("seçiminizi giriniz: ");
scanf("%c, &secim);
ekle(&baslangicPtr,secimNo);
...
}
ekle(ListeDugumuPtr *sptr, char deger)
{
ListeDugumuPtr yeniPTr, oncekPtr, SuandakiPtr;//Kisaca ListeDugumuPtr ne olaki bununla ilgili degiskenler yaratıp duruyor.
Bu yapıyı gösteren gösterici türünde gösterici mi ? Gerçekten Kafam çorba gibi oldu anlatırsanız ne işe yaradıklarını memnun olacağım.
...
acil öğrensem iyi olacak.
-
çizik
-
typedef anahtar sözcüğü ile bir veri tipine takma ad veriyoruz. Olay bundan ibaret. Örneğin
(typedef) (struct listeDugumu) (ListeDugumu) dediğimiz zaman (parantezleri anlaşılabilsin diye ben koydum) bundan sonra listeDugumu yapısını kullanacağımız zaman uzun uzun
struct listeDugumu a;
yazmıyor da
ListeDugumu a;
yazıyoruz. Keza
typedef ListeDugumu *ListeDugumuPtr;
satırı da aynı. (typedef) (ListeDugumu *) (ListeDugumuPtr);
artık ListeDugumu'ne ait işaretçi tanımlamak istiyorsak
ListeDugumu * işaretçi = null; yerine
ListeDugumuPtr işaretçi = null yazabiliriz.
-
hocam typedef sadece takma ad vermeye yarar.
typedef int tamsayi;
dersek
tamsayi sayi = 30; demek ile
int sayi 30; demek arasında bir fark olmaz...
Okunabilirliği kolaylaştırmak için yapılmış birşey diyebilirim. Bir kaç örnek daha vereyim..
int a = 1;
int* b = null;b = &a;
*b++;
cout << a; //Burada a 2 olacak.
Şimdi typedef li örnek yapacam. Yukarıdaki örnek ile tam olarak aynı işlevi yapacak.
typedef int* tamsayigostericisi;
typedef int tamsayi;
tamsayi a = 1;
tamsayigostericisi b = null;
b = &a;
*b++;
cout << a;//Burada a gene 2 olacak.
DrKill tarafından 09/Nis/13 21:38 tarihinde düzenlenmiştir