Sayfalar

2 Kasım 2011

Bağlantılı Listeler Quiz Sorusu Veri Yapıları

Kullanıcının girdiği sayıları alarak bir listeye "ileri ekleme yöntemi" ile elemanları ekleyin (negatif sayı girene kadar) sonra elemanları ekrana yazdırın.
#include <stdio.h>
#include <stdlib.h>

// Veri yapısı tanımı
typedef struct dugumtipi{
        int deger;
        struct dugumtipi *link;
        }bliste;
        
// Değişken tanımlamaları
bliste *ilk= null, *son=null;
bliste *yeni;
int sayi;

main(){
// Sayı iste ve Oku
puts("Bir sayi girin:"); scanf("%d",&sayi);

// Sayıyı bellek alanına yazma
while(sayi !=0 && sayi >0)
      {
      yeni=malloc(sizeof(bliste));
      if(yeni==null){
      puts("Bellek alani ayrilamadi"); exit(0);
      }
yeni->deger=sayi; yeni -> link=null;

// node (eleman) ekle
        if(ilk==null){
             ilk=yeni; son=yeni;
             }
             
        else
             {
             son->link=yeni;
             son=yeni;
             }
             
        puts("Yeni sayi giriniz:");
        scanf("%d",&sayi);
        } //While Sonu
        
// Ekrana yaz
   if (sayi==0){
             yazdir=malloc(sizeof(bliste));
             yazdir=ilk;
             while(yazdir->deger != son ->deger)
             {
                printf("deger%d\n", son->deger);
                yazdir=yazdir ->link;
             }
             
   if(yazdir==son)
   printf("deger%d\n",son ->deger);
   }
   if(sayi<0){
      puts("eleman ekleme islemi bitti");
      return 0;
      }
} // main sonu