Şimdi Ara

C++ LinkedList ile 2 veriyi yer değiştirme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
1.186
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar
    Ne yaptıysam bu 2 veriyi data kullanmadan LinkedList ile değiştiremedim

    Mesela Listem {1,2} olsun

    burada 1 ve 2 nin yerini değiştirmek istiyorum.

    Ben aşağıdaki şekilde yapıyordum hocamız data ile değişmeyi kabul etmedi.Doğrudan templer üzerinden nasıl değiştirebilirim örnek kodu yazabilirseniz çok sevinicem algoritma içerisinde bunu uygulamam gerekior tıkandım kaldım :S
    """""""""""""""""""
    node *temp=head;

    temp->data=temp->next->data;
    """"""""""""""""



  • Hocan haklı. Bağlı listede veriler değiştiril(e)mez, adresler değiştirilir. Bunları öğrenirsen yararı kendine. Yapman gereken çok basit.

    node *temp = head;
    head = head->next;
    head->next = temp;

    Normalde bu değişimden sonra listenin sonunu tekrar işaretlemek gerekir ama hocan o kadarını istemez heralde.
  • quote:

    Orijinalden alıntı: elektro_gadget

    Hocan haklı. Bağlı listede veriler değiştiril(e)mez, adresler değiştirilir. Bunları öğrenirsen yararı kendine. Yapman gereken çok basit.

    node *temp = head;
    head = head->next;
    head->next = temp;

    Normalde bu değişimden sonra listenin sonunu tekrar işaretlemek gerekir ama hocan o kadarını istemez heralde.

    bu kod patlar.

    1->2->3->4.. diye linkedlistin var diyelim. head 1e bakıo. head->next 2ye. senin yazdığın kodu yaparsak liste

    2->1 |||| 3->4 gibisinden bişey olur devamını kaybedersin listenin. ancak 2 nodelu listte calısır o. biliyosundur zaten de konuyu açan arkadaş daha iyi anlasın diye yazıyorum.

    node *temp1 = head;
    node *temp2 = head->next;

    head->next = head->next->next; //1in devami 3 olacak
    head = temp2; //yeni head 2
    head->next = temp1;//2nin devami 1

    her zaman genel çözümü düşünmekte fayda var




  • tşk ederim hocam Allah razı olsun
  • Hayır patlamaz. Listede zaten 2 eleman var. Devamı olmadığı için düşünmeye gerek yok. Bu sadece bir ödev.
  • hocam ben

    (1,2,3,4,5,6) soldaki listeyi birinci(2) fonksiyonla (1,2,4,5,6,3) bu hale getirmek istiorm

    Birde bunun tam tersi işlemi
    (1,2,3,4,5,6) soldaki listeyi ikinci(2) fonksiyonla (1,2,6,3,4,5) bu hale getirmek istiorm

    bi türlü kafama giremedi bu nodeleri değiştirme işlemi :( ben dataları deişerek yapıordm hoca kabul etmedi.Node ler yer değişecek diyor nasıl olucak yardım ederseniz sevinirim.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.