BubbleSort Sıralama Algoritması ( Structlar ve İşaretçiler ile)

Başlatan Jey@Nfer, 04 Şubat 2012 - 16:35:35

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Jey@Nfer

Arkadaşlar bubble srot algoritmasını struct ve işaretçiler ile nasıl kullanabileceğinizi örneklendirdiğim kodu paylaşıyorum.


#include "stdio.h"
#include "time.h"
#include "stdlib.h"


typedef struct yapi
{
    int s;

    struct yapi *onceki;
    struct yapi *sonraki;

}SAYI;

SAYI *ilk='\0';
SAYI *son='\0';

int adet=0;

main()
{
    printf("******************************************\n");
    printf("*      LINKED LIST - BUBBLE SORT         *\n");
    printf("*========================================*\n");
    printf("*              J3y@Nf3R                  *\n");
    printf("******************************************\n");

    printf("\nDevam etmek icin bir tusa basiniz...\n");

getchar();


    printf("Kac Adet Sayi Olsun? \n");
    scanf("%d",&adet);

    atama();

printf("\nAtama Yapildi \n\n");

    yazdir();

printf("\n\nBubble Sort Algoritmasiyla Siralandi \n\n");

    bubblesort();
    yazdir();

printf("\n\n");

getchar();
}

atama()
{
    int i;
    SAYI *yeni;

  srand((unsigned) time(NULL));

  for(i=0; i<adet; i++)
  {
      yeni=(SAYI *) malloc(sizeof(SAYI));

      yeni->s=rand()%100;

    if(ilk!=0)
    {
    son->sonraki=yeni;
    yeni->onceki=son;
    son=yeni;
    son->sonraki='\0';
    }

    else
    {
    ilk=yeni;
    son=ilk;
    ilk->onceki='\0';
    ilk->sonraki='\0';
    }

  }

}


yazdir()
{
    SAYI *sayi;

    sayi=ilk;

    while(sayi)
    {
        printf("  %d  ",sayi->s); sayi=sayi->sonraki;
    }
}


bubblesort()
{
int gecici=0;
SAYI *sayi1, *sayi2, *SON;

SON=son;


while( SON )
{
sayi1=ilk;
sayi2=sayi1->sonraki;

while(sayi2 && SON )
{
    if( (sayi1->s) > (sayi2->s) )
    {
       gecici=sayi1->s; sayi1->s=sayi2->s; sayi2->s=gecici;
    }

    sayi1=sayi2;
    sayi2=sayi2->sonraki;
}

SON=SON->onceki;

}


}



ilginç bir örnek olacağını düşünüyorum..

Hırs , azim , tevekkül ...

www.mehmetvahit.net