C - Veri Yapıları (Yığınlar) Push-Pop-Peek İşlemleri
Kod:
#include<stdio.h>
#include<stdlib.h>
struct node {
int data;
struct node * next;
};
struct node * temp = NULL;
struct node * top = NULL;
v o i d push(int veri) {
struct node * eleman = (struct node *) malloc (sizeof(struct node));
eleman->data = veri;
if (top == NULL) {
top = eleman;
top->next = NULL;
}
else {
eleman->next = top;
top = eleman;
}
}
v o i d pop() {
if (top == NULL) {
printf("Silinecek Eleman Bulunamadi..\n");
}
else {
printf("%d elemani yigindan cikarildi. \n",top->data);
temp = top->next;
free(top);
top = temp;
}
}
v o i d print() {
system("cls");
if ( top == NULL ) {
printf("Yazdirilacak Eleman Yok..\n");
}
else {
temp = top;
while (temp->next!=NULL) {
printf("%d\n",temp->data);
temp = temp->next;
}
printf("%d\n",temp->data);
}
}
v o i d peek () {
if ( top == NULL ) {
printf("Yigin bos..\n");
}
else {
printf("Yiginda ki en ust eleman : %d \n",top->data);
}
}
int main () {
int secim,sayi;
while (1) {
printf("\nSTACK ( YIGIN ) \n");
printf("1--> Push islemi \n");
printf("2--> Pop islemi \n");
printf("3--> Print islemi \n");
printf("4--> Peek islemi (En ust deger) \n");
printf("5--> Cikis islemi \n\n");
printf("Seciminizi Yapin(1-5):");
scanf ("%d",&secim);
switch(secim) {
case 1:
printf("Yigina Eklenecek sayi:");
scanf("%d",&sayi);
push(sayi);
break;
case 2:
pop();
break;
case 3:
print();
break;
case 4:
peek();
break;
case 5:
return 0;
}
}
return 0;
}