Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Bu siteyi Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

0



Verilen tek yönlü bağlı listeden yeni bir bağlı tek yönlü bağlı liste oluşturma

Amacım kendisine verilen liste ve iki adet integer indisle verilen listeden bu indisler arasındaki (indisler dahil )bağlı liste elemanlarından yeni bir bağlı liste oluşturmaktı ama yanlış sonuç alıyorum
  1. public class Eleman<T>{
  2. T deger;
  3. Eleman ileri;
  4.  
  5. public Eleman(T deger) {
  6. this.deger = deger;
  7. this.ileri = null;
  8. }
  1. }
  2.  
  3. public class BagliListe {
  4. Eleman ilk;
  5. Eleman son;
  6.  
  7. public BagliListe() {
  8. this.ilk = null;
  9. this.son = null;
  10. }
  11.  
  12. void basaEkle(Eleman eklenen){
  13. if (son==null)
  14. son=eklenen;
  15. eklenen.ileri=ilk;
  16. ilk=eklenen;
  17. }
  18.  
  19. void arayaEkle(Eleman eklenen, Eleman once){
  20. eklenen.ileri=once.ileri;
  21. once.ileri=eklenen;
  22. }
  23.  
  24. void sonaEkle(Eleman eklenen){
  25. if (ilk==null)
  26. ilk=eklenen;
  27. else
  28. son.ileri=eklenen;
  29. son=eklenen;
  30. }
  31.  
  32. void bastanSil(){
  33. ilk=ilk.ileri;
  34. if (ilk==null)
  35. son=null;
  36. }
  37.  
  38. void sondanSil(){
  39. Eleman yedek=ilk, once;
  40. once=null;
  41. while (yedek!=son){
  42. once=yedek;
  43. yedek=yedek.ileri;
  44. }
  45. if (once==null)
  46. ilk=null;
  47. else
  48. once.ileri=null;
  49. son=once;
  50. }
  51.  
  52. void aradanSil(Eleman silinen){
  53. Eleman yedek=ilk, once;
  54. once=null;
  55. while (yedek!=silinen){
  56. once=yedek;
  57. yedek=yedek.ileri;
  58. }
  59. once.ileri=silinen.ileri;
  60. }
  61.  
  62. void listeYazdir(){
  63. Eleman yedek=ilk;
  64. while (yedek!=null){
  65. System.out.print(" "+yedek.deger);
  66. yedek=yedek.ileri;
  67. }
  68. }
  69.  
  70. <T> Eleman ara(T aranan){
  71. Eleman yedek=ilk;
  72. while (yedek!=null){
  73. if (yedek.deger==aranan)
  74. return yedek;
  75. yedek=yedek.ileri;
  76. }
  77. return null;
  78. }
  79.  
  80. int elemanSayısı(){
  81. int sayac=0;
  82. Eleman yedek=ilk;
  83. while (yedek!=null){
  84. yedek=yedek.ileri;
  85. sayac++;
  86. }
  87. return sayac;
  88. }
  89.  
  90. Eleman indisElemanAra(int indis){
  91. Eleman yedek=ilk;
  92. if (ilk==null)
  93. return null;
  94. int sayac=0;
  95. while (sayac<indis && yedek!=null){
  96. yedek=yedek.ileri;
  97. sayac++;
  98. }
  99. return yedek;
  100. }
  101.  
  102. public static BagliListe altKumeOlustur(BagliListe liste1,int bas, int son) {
  103.  
  104. //
  105. Eleman b=liste1.indisElemanAra(bas);
  106. Eleman s=liste1.indisElemanAra(son);
  107.  
  108. //alt kümenin tutulacağı bağlı liste oluşturuluyor
  109. BagliListe liste_2=new BagliListe();
  110.  
  111. Eleman yedek=b;
  112. Eleman e;
  113.  
  114. while (yedek!=s){
  115. e=new Eleman(yedek.deger);
  116. liste_2.basaEkle(e);
  117. yedek=yedek.ileri;
  118. }
  119. return liste_2;
  120. }
  121.  
  122. }
  123.  
  124.  
  125. import java.util.Scanner;
  126.  
  127. public class Test {
  128. public static void main(String[] args) {
  129.  
  130. //Liste oluşturuluyor
  131. BagliListe liste_1=new BagliListe();
  132.  
  133. //Elemanlara değerleri atanıyor ve listeye ekleniyor
  134. Eleman e1=new Eleman(5.2);
  135. liste_1.basaEkle(e1);
  136. Eleman e2=new Eleman(9);
  137. liste_1.basaEkle(e2);
  138. Eleman e3=new Eleman(90);
  139. liste_1.basaEkle(e3);
  140. Eleman e4=new Eleman(100);
  141. liste_1.basaEkle(e4);
  142. Eleman e5=new Eleman(55);
  143. liste_1.basaEkle(e5);
  144. Eleman e6=new Eleman(5);
  145. liste_1.basaEkle(e6);
  146.  
  147. //istenilen altkümenin özelliklerinin okunabilmesi
  148. //için Scanner sınıfından nesne yaratılıyor
  149. Scanner oku=new Scanner(System.in);
  150.  
  151. //istenilen altkümenin özelliklerinin tutulacağı
  152. //değişkenler tanımlanıyor
  153. int kumeBas=0, kumeSon=0;
  154.  
  155. //özellikler alınıyor
  156. System.out.print("Alt kume baslangici: ");
  157. kumeBas=oku.nextInt();
  158.  
  159. System.out.print("Alt kume sonu: ");
  160. kumeSon=oku.nextInt();
  161.  
  162. //alt kümenin oluşturulması için değreler 'altKumeOlustur'
  163. //metoduna gönderiliyor ve oluşan yeni alt küme ekrana yazdırılıyor
  164. System.out.print("Alt kümeniz: ");
  165. liste_1.altKumeOlustur(liste_1, kumeBas, kumeSon).listeYazdir();
  166.  
  167. }
  168.  
  169. }
  170.  
  171.  
  172.  
  173.  
  174.  
Alt kume baslangici: 3
Alt kume sonu: 5
Alt kümeniz:  9 90

Henüz cevap veren yok.

Bir cevap yazın: