Döngü İçerisinde Farklı İsimlerde Obje Oluşturma
-
Merhaba arkadaşlar, döngü içerisinde obje1, obje2, obje3... gibi her seferinde farklı isimde objeler oluşturmak istiyorum.
for (int i = 1; i <= 100 ; ++i) { karakter = 65 + (rand() % 25); Node<char> *node= new Node<char>(karakter); }
Yani yapmak istediğim node olarak degilde node1 node2 ... node100. Bu olayı C++'da nasıl yapabilirim fikri olan var mı?
CnkGn tarafından 01/Ara/15 16:23 tarihinde düzenlenmiştir -
mumkun degildir cpp de, zaten döngü dışında kullanamayacaksın o değişkeni.
http://stackoverflow.com/questions/8641751/how-to-use-a-string-as-a-variable-name-in-c
http://stackoverflow.com/questions/7143120/convert-string-to-variable-name-or-variable-type
-
Hocam neden array degil bi mantigi var mi
-
rakkoc bunu yazdı
Hocam neden array degil bi mantigi var mi
Hocam veri yapilari dersi odevi icin bu yapi. Neden array degil cunku odevde istenen 100 adet random karakter olusturulacak ve her olusturulan karakter bagli liste node'una eklenecek. Ve bu liste uzerinde okuma yapilanlar listeden silinip okundu adinda bir yigita kaydedilecek.
-
CnkGn bunu yazdırakkoc bunu yazdı
Hocam neden array degil bi mantigi var mi
Hocam veri yapilari dersi odevi icin bu yapi. Neden array degil cunku odevde istenen 100 adet random karakter olusturulacak ve her olusturulan karakter bagli liste node'una eklenecek. Ve bu liste uzerinde okuma yapilanlar listeden silinip okundu adinda bir yigita kaydedilecek.
Tamamda bunun için niye farklı isimlerde değişkenlere ihtiyacın var? Ayrıca dizilerdede farklı isimde değişkene sahip olmuş oluyorsun belirttiğin şekilde değişkenlere sahip oluyorsun.
ornek[1] ornek[2 9 .......
bir çok seçeneğin mevcut.
Vektorler
Listeler
Liste içinde ayrı bağlantılı listeler (multi linked list)
vs...
Sen bana ayrıntıları bir güzel anlat yardımcı olmaya çalışayım.
Listen ne veya ne tür değerler tutacak?
Listendeki verilerin uzunlukları sabit olanlar hangisi, uzunlukları dinamik olanlar hangisi?
Listen tek bağlımı çift bağlımı halkalı mı? bitişli bir liste mi?
her listede 100 karakterlik bir string mi tutulacak? yoksa 100 nodeluk bir listede herbir node random karakterler mi saklayacak.
Tam anlayamadım anlatmak istediğini
-
DrKill bunu yazdıCnkGn bunu yazdırakkoc bunu yazdı
Hocam neden array degil bi mantigi var mi
Hocam veri yapilari dersi odevi icin bu yapi. Neden array degil cunku odevde istenen 100 adet random karakter olusturulacak ve her olusturulan karakter bagli liste node'una eklenecek. Ve bu liste uzerinde okuma yapilanlar listeden silinip okundu adinda bir yigita kaydedilecek.
Tamamda bunun için niye farklı isimlerde değişkenlere ihtiyacın var? Ayrıca dizilerdede farklı isimde değişkene sahip olmuş oluyorsun belirttiğin şekilde değişkenlere sahip oluyorsun.
ornek[1] ornek[2 9 .......
bir çok seçeneğin mevcut.
Vektorler
Listeler
Liste içinde ayrı bağlantılı listeler (multi linked list)
vs...
Sen bana ayrıntıları bir güzel anlat yardımcı olmaya çalışayım.
Listen ne veya ne tür değerler tutacak?
Listendeki verilerin uzunlukları sabit olanlar hangisi, uzunlukları dinamik olanlar hangisi?
Listen tek bağlımı çift bağlımı halkalı mı? bitişli bir liste mi?
her listede 100 karakterlik bir string mi tutulacak? yoksa 100 nodeluk bir listede herbir node random karakterler mi saklayacak.
Tam anlayamadım anlatmak istediğini
bağlı listem generic olacak (c++'da bu yapıya zannediyorum template deniyor) Dediğin gibi yaparsak örn: obje[1],obje[2] ... tek bir array nesnesi var oda obje , ve bizden istenen her bir karakter için yeni bir nesne oluşturmamız isteniyor. Bu nesnede Node(linklist) tipinde olmalı olmalı. 100 adet karakter üretiyorsam 100 adet node olup bunların birbirine bağlı olması gerekiyor. Zaten dizi kullanmamızın sebebi bu bağlı listeyi kavrayabilmek, o yüzden dizi kullanmıyoruz.
edit: bağlı liste tek yönlü
CnkGn tarafından 02/Ara/15 08:43 tarihinde düzenlenmiştir -
CnkGn bunu yazdıDrKill bunu yazdıCnkGn bunu yazdırakkoc bunu yazdı
Hocam neden array degil bi mantigi var mi
Hocam veri yapilari dersi odevi icin bu yapi. Neden array degil cunku odevde istenen 100 adet random karakter olusturulacak ve her olusturulan karakter bagli liste node'una eklenecek. Ve bu liste uzerinde okuma yapilanlar listeden silinip okundu adinda bir yigita kaydedilecek.
Tamamda bunun için niye farklı isimlerde değişkenlere ihtiyacın var? Ayrıca dizilerdede farklı isimde değişkene sahip olmuş oluyorsun belirttiğin şekilde değişkenlere sahip oluyorsun.
ornek[1] ornek[2 9 .......
bir çok seçeneğin mevcut.
Vektorler
Listeler
Liste içinde ayrı bağlantılı listeler (multi linked list)
vs...
Sen bana ayrıntıları bir güzel anlat yardımcı olmaya çalışayım.
Listen ne veya ne tür değerler tutacak?
Listendeki verilerin uzunlukları sabit olanlar hangisi, uzunlukları dinamik olanlar hangisi?
Listen tek bağlımı çift bağlımı halkalı mı? bitişli bir liste mi?
her listede 100 karakterlik bir string mi tutulacak? yoksa 100 nodeluk bir listede herbir node random karakterler mi saklayacak.
Tam anlayamadım anlatmak istediğini
bağlı listem generic olacak (c++'da bu yapıya zannediyorum template deniyor) Dediğin gibi yaparsak örn: obje[1],obje[2] ... tek bir array nesnesi var oda obje , ve bizden istenen her bir karakter için yeni bir nesne oluşturmamız isteniyor. Bu nesnede Node(linklist) tipinde olmalı olmalı. 100 adet karakter üretiyorsam 100 adet node olup bunların birbirine bağlı olması gerekiyor. Zaten dizi kullanmamızın sebebi bu bağlı listeyi kavrayabilmek, o yüzden dizi kullanmıyoruz.
edit: bağlı liste tek yönlü
Hocam k. bakma yeni gördüm mesajını.
Şimdi bunun için zaten FARKLI isimlerde değişken oluşturmana gerek yok. Listede istediğin kadar eleman ekle amacın bağlı tek yönlü listelerde LİSTE BAŞINI saklamaktır.
örnek bir struct yapın var diyelim: (direk tbt editörde yazıyorum syntax hataları olabilir)
typedef struct node {
char karakter;
struct node * sonraki;
} DUGUM;typedef struct DUGUM* DUGUMPTR;
Şimdi senin amacın 100 tane karakter oluşturmaksa eğer sen linked listin SADECE başlangıcının kaydetmen yeter, zaten diğer türlü her düğüm birbirine bağlı olduğu için, başlangıçtan ilerleyerek sonuna kadar tüm karakterleri gezebilirsin.
DUGUMPTR (bu aslında NODE yapısının pointer değişkeni yani diğer adıyla NODE *)
DUGUMPTR baslangic = NULL; //liste başını belirledim şimdi CnkGN. Bu liste başını hiç kaybetmeyeceksin ve oluşturduktan sonra hiçbir şekilde değerinin değiştirmeyeceksin (tüm listeyi silmiyorsan)
Diyeceksin ki
0
if(baslangic == NULL) //listemiz oluşturulmadıysa oluşturacaksın @CnkGN
{
baslangic = new DUGUM;
baslangic->karakter = 'C';
baslangic->sonraki = NULL;
}
else //eğer liste oluşturulduysa listenin sonuna kadar git ve düğüme yeni karakteri ekle diyeceksin.
{
DUGUMPTR gecici = baslangic;
while(gecici->sonraki != NULL) //dugumun sonunu buluyoruz....
gecici = gecici->sonraki;
}
son dugumu bulduk yeni karakteri ekleyeceksin.
gecici->sonraki = new DUGUM;
gecici->sonraki->karakter = 'n';
gecici->sonraki->sonraki = NULL;
Bu şekilde her eklemede yeni bir karakter listenin sonuna eklenmiş olacak. Dikkat edersen baslangic göstericisini, oluşturmak haricinde hiç değiştirmedim. Elinde baslangic olduğu sürece listeyi komple yazdırırsın, silersin, arada değiştirmeler yapabilirsin.
Farklı farklı isim ihtiyacın nedir tam olarak anlayamadım. Amacın bu olması lazım.
-
DrKill bunu yazdıCnkGn bunu yazdıDrKill bunu yazdıCnkGn bunu yazdırakkoc bunu yazdı
Hocam neden array degil bi mantigi var mi
Hocam veri yapilari dersi odevi icin bu yapi. Neden array degil cunku odevde istenen 100 adet random karakter olusturulacak ve her olusturulan karakter bagli liste node'una eklenecek. Ve bu liste uzerinde okuma yapilanlar listeden silinip okundu adinda bir yigita kaydedilecek.
Tamamda bunun için niye farklı isimlerde değişkenlere ihtiyacın var? Ayrıca dizilerdede farklı isimde değişkene sahip olmuş oluyorsun belirttiğin şekilde değişkenlere sahip oluyorsun.
ornek[1] ornek[2 9 .......
bir çok seçeneğin mevcut.
Vektorler
Listeler
Liste içinde ayrı bağlantılı listeler (multi linked list)
vs...
Sen bana ayrıntıları bir güzel anlat yardımcı olmaya çalışayım.
Listen ne veya ne tür değerler tutacak?
Listendeki verilerin uzunlukları sabit olanlar hangisi, uzunlukları dinamik olanlar hangisi?
Listen tek bağlımı çift bağlımı halkalı mı? bitişli bir liste mi?
her listede 100 karakterlik bir string mi tutulacak? yoksa 100 nodeluk bir listede herbir node random karakterler mi saklayacak.
Tam anlayamadım anlatmak istediğini
bağlı listem generic olacak (c++'da bu yapıya zannediyorum template deniyor) Dediğin gibi yaparsak örn: obje[1],obje[2] ... tek bir array nesnesi var oda obje , ve bizden istenen her bir karakter için yeni bir nesne oluşturmamız isteniyor. Bu nesnede Node(linklist) tipinde olmalı olmalı. 100 adet karakter üretiyorsam 100 adet node olup bunların birbirine bağlı olması gerekiyor. Zaten dizi kullanmamızın sebebi bu bağlı listeyi kavrayabilmek, o yüzden dizi kullanmıyoruz.
edit: bağlı liste tek yönlü
Hocam k. bakma yeni gördüm mesajını.
Şimdi bunun için zaten FARKLI isimlerde değişken oluşturmana gerek yok. Listede istediğin kadar eleman ekle amacın bağlı tek yönlü listelerde LİSTE BAŞINI saklamaktır.
örnek bir struct yapın var diyelim: (direk tbt editörde yazıyorum syntax hataları olabilir)
typedef struct node {
char karakter;
struct node * sonraki;
} DUGUM;typedef struct DUGUM* DUGUMPTR;
Şimdi senin amacın 100 tane karakter oluşturmaksa eğer sen linked listin SADECE başlangıcının kaydetmen yeter, zaten diğer türlü her düğüm birbirine bağlı olduğu için, başlangıçtan ilerleyerek sonuna kadar tüm karakterleri gezebilirsin.
DUGUMPTR (bu aslında NODE yapısının pointer değişkeni yani diğer adıyla NODE *)
DUGUMPTR baslangic = NULL; //liste başını belirledim şimdi CnkGN. Bu liste başını hiç kaybetmeyeceksin ve oluşturduktan sonra hiçbir şekilde değerinin değiştirmeyeceksin (tüm listeyi silmiyorsan)
Diyeceksin ki
0
if(baslangic == NULL) //listemiz oluşturulmadıysa oluşturacaksın @CnkGN
{
baslangic = new DUGUM;
baslangic->karakter = 'C';
baslangic->sonraki = NULL;
}
else //eğer liste oluşturulduysa listenin sonuna kadar git ve düğüme yeni karakteri ekle diyeceksin.
{
DUGUMPTR gecici = baslangic;
while(gecici->sonraki != NULL) //dugumun sonunu buluyoruz....
gecici = gecici->sonraki;
}
son dugumu bulduk yeni karakteri ekleyeceksin.
gecici->sonraki = new DUGUM;
gecici->sonraki->karakter = 'n';
gecici->sonraki->sonraki = NULL;
Bu şekilde her eklemede yeni bir karakter listenin sonuna eklenmiş olacak. Dikkat edersen baslangic göstericisini, oluşturmak haricinde hiç değiştirmedim. Elinde baslangic olduğu sürece listeyi komple yazdırırsın, silersin, arada değiştirmeler yapabilirsin.
Farklı farklı isim ihtiyacın nedir tam olarak anlayamadım. Amacın bu olması lazım.
anladım hocam cok sagolasın, konuyu acarken isimlerinin olması gerektiğini düşünmüştüm ama bu şekilde açıklayınca pek bir öneminin olmadıgını anladım. şimdi uygulayacağım sıkıntı olursa tekrardan rahatsız ederim mahsuru yok ise :)