C.StackExample1 History
Hide minor edits - Show changes to markup
September 03, 2005, at 05:33 PM
by �zg�n
Changed lines 32-34 from:
newPtr->data = x; //Yeni dugumun data'si atanir.
newPtr->rearPtr = yi; //Yeni dugumun nextPtr'si bir onceki dugumu gostersin.
yi = newPtr; //Yigin isareticisi yeni dugumun adresini gostersin.
to:
newPtr->data = x; //Yeni dugumun data'si atanir.
newPtr->rearPtr = yi; //Yeni dugumun nextPtr'si bir onceki dugumu gostersin.
yi = newPtr; //Yigin isareticisi yeni dugumun adresini gostersin.
Changed lines 43-46 from:
tmpPtr = yi; // Silinecek d�g�m tmpPtr olsun.
x = tmpPtr->data; // Silinecek dugumun data'sini dondurulecek dugume ata.
yi = tmpPtr->rearPtr; // Yigin isaretcisi bir onceki dugumu gostersin.
free(tmpPtr); // Silinecek dugumun kapladigi yeri bellege geri ver.
to:
tmpPtr = yi; // Silinecek d�g�m tmpPtr olsun.
x = tmpPtr->data; // Silinecek dugumun data'sini dondurulecek dugume ata.
yi = tmpPtr->rearPtr; // Yigin isaretcisi bir onceki dugumu gostersin.
free(tmpPtr); // Silinecek dugumun kapladigi yeri bellege geri ver.
Changed line 48 from:
return x; // Silinen data'yi d�d�r.
to:
return x; // Silinen data'yi d�d�r.
September 03, 2005, at 05:32 PM
by �zg�n
Added lines 1-81:
Baglantili liste yontemiyle basit ve az kontrollu bir yigin �rnegi.
(:code lang=c:)
/**
* Program: yigin-2005.05.20.c
* Versiyon: 0.1
* Aciklama: Dinamik bellek yontemi ile yigin uygulamasi.
* * Kaynaklar:
* Veri Yapilari ve Algoritmalar, Rifat Colkesen
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Yigina koyulacak veritipini belirle.
typedef struct ynode {
int data;
struct ynode *rearPtr;
} YNODE;
// Yigindaki son elemani isaret edecek yigin isaretcisi.
YNODE *yi = NULL;
/**
* Gelen eleman yiginin tepesine baglantili listenin sonuna eklenir.
*/
push(int x) {
// Dugumu olusturup datasini ata.
YNODE *newPtr;
newPtr = malloc(sizeof(YNODE)); //Yeni d�g�m i�in yer alinir.
newPtr->data = x; //Yeni dugumun data'si atanir.
newPtr->rearPtr = yi; //Yeni dugumun nextPtr'si bir onceki dugumu gostersin.
yi = newPtr; //Yigin isareticisi yeni dugumun adresini gostersin.
}
/**
* Eleman yiginin tepesinden baglantili listenin sonundan silinir.
*/
int pop() {
YNODE *tmpPtr;
int x;
tmpPtr = yi; // Silinecek d�g�m tmpPtr olsun.
x = tmpPtr->data; // Silinecek dugumun data'sini dondurulecek dugume ata.
yi = tmpPtr->rearPtr; // Yigin isaretcisi bir onceki dugumu gostersin.
free(tmpPtr); // Silinecek dugumun kapladigi yeri bellege geri ver.
printf("\nCikarilan eleman: %d", x);
return x; // Silinen data'yi d�d�r.
}
/**
* Listele
*/
list() {
YNODE *curPtr;
curPtr = yi;
printf("\nYigin: ");
while(curPtr != NULL) {
printf("%d -", curPtr->data);
curPtr = curPtr->rearPtr;
}
}
/**
* main() fonksiyonu.
*/
main (int argc, char *argv[]) {
//
push(1);
push(2);
push(3);
list();
pop();
list();
printf("\n --------------- Biti --------------\n");
return 0;
} //main() sonu.