// **** Algoritmauzmanı.com **** // #include <stdio.h> #include <stdlib.h> #include <limits.h> // Stack elemanları bu düğümlerde tutulacak struct StackNode { int data; struct StackNode* next; }; //herbir veri eklenirken bu fonksiyonu kullanıyoruz. Düğüm için alan ayırıyor ve bilgileri ekliyor struct StackNode* newNode(int data) { struct StackNode* stackNode = (struct StackNode*) malloc(sizeof(struct StackNode)); stackNode->data = data; stackNode->next = NULL; return stackNode; } //Stack Bos mu fonksiyonu int isEmpty(struct StackNode *root) { return !root; } //Stack yapısına Eleman Ekleyen Fonksiyon // root, top elemanı void push(struct StackNode** root, int data) { struct StackNode* stackNode = newNode(data); stackNode->next = *root; *root = stackNode; printf("%d sayisi yigina eklendi\n", data); } // Yığından Eleman Çıkarma fonksiyonu // root parametresi gönderiyoruz. // işlem sonucu root değeri değişiyor, çünkü top elemanı çıkıyor int pop(struct StackNode** root) { if (isEmpty(*root)) return INT_MIN; struct StackNode* temp = *root; *root = (*root)->next; int popped = temp->data; free(temp); return popped; } // Top değerini kullanıcıya döndüren fonksiyon int peek(struct StackNode* root) { if (isEmpty(root)) return INT_MIN; return root->data; } void algoritmaUzmani(); void menu() { struct StackNode* root = NULL; int secim,eklenecek; while(1==1) { printf("\n Yapmak istediginiz islemi secin!\n"); printf("\n 1- Yigina Eleman Ekle\n"); printf("\n 2- Yigindan Eleman Cikar\n"); printf("\n 3- Konuyu Anlamadim!!!\n"); scanf("%d", &secim); switch(secim) { case 1: printf("\nEklemek istediginizi sayiyi girin..."); scanf("%d", &eklenecek); push(&root, eklenecek); break; case 2: printf("\n %d elemani yigindan cikarilmistir...", pop(&root)); break; case 3: algoritmaUzmani(); break; } } } int main() { menu(); return 0; } //sadece ilgili konuya gitmek icin. diger kodlar ile ilgisi yok void algoritmaUzmani() { system("C:\\Progra~2\\Google\\Chrome\\Application\\chrome.exe www.algoritmauzmani.com/2016/09/bagli-liste-ile-yigin-islemleri.html"); printf("\n Eger asagida sistem yolu hatasi aliyorsaniz bunu onemsemeyin"); if(system) { system("C:\\Progra~1\\Google\\Chrome\\Application\\chrome.exe www.algoritmauzmani.com/2016/09/bagli-liste-ile-yigin-islemleri.html"); if(system) system("C:\\Progra~2\\Mozill~1\\firefox.exe www.algoritmauzmani.com/2016/09/bagli-liste-ile-yigin-islemleri.html"); if(system) system("C:\\Progra~1\\Mozill~1\\firefox.exe www.algoritmauzmani.com/2016/09/bagli-liste-ile-yigin-islemleri.html"); } }
Etiketler: bağlı liste stack işlemi, linked list ile stack işlemler