AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ



Benzer belgeler
AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { int ID; char isim[15]; char soyisim[15];

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

int main(void) { int num = 0; int input = 1; int retval = 0; struct NODE *nodepointer; nodepointer = (struct NODE *)malloc(sizeof(struct NODE));

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

Ders 6: Karşılaştırma Deyimleri

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Temel Dosya İşlemleri. Kütük Organizasyonu 1

Matris İşlemleri Uygulaması

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Adım Adım C. Dr. Hidayet Takcı

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

YAPILAR (STRUCTURES)

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

Karşılaştırma Komutları (Switch ve? Operatörü)

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Programlama Dilleri Laboratuvarı

printf("\nbilgilerini goruntulemek istediginiz ogrencinin numarasini girin: "); scanf("%d",&no);

Telefon Rehberi Uygulaması

Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

PROGRAMLAMAYA GİRİŞ DERS 2

Bölüm 2 - C ile Programlamaya Giriş

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

ALGORİTMA VE PROGRAMLAMA II

Bil Hafta Çalışma Soruları (Yanıtlar)

Eln 1001 Bilgisayar Programlama I

Ders 5: Temel Kütüphane Fonksiyonlar

Arasınav Soruları Güz, Süre: 90 Dakika

BAĞLAÇLI LİSTELER LINKED LISTS

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Fonksiyonlar (Altprogram)

HSancak Nesne Tabanlı Programlama I Ders Notları

Strings(Karakter Dizisi)

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

BLM 111 ALGORİTMA VE PROGRAMLAMA I

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

DOSYA İŞLEMLERİ Programlama dilleri hafta -

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

1 PROGRAMLAMAYA GİRİŞ

Diziler (Arrays) Çok Boyutlu Diziler

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

BİLG Dr. Mustafa T. Babagil 1

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Örnek1: #include <iostream> #include <string> using namespace std;

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Nesne Yönelimli Programlama

BAĞLAÇLI LİSTELER LINKED LISTS

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C dilinde if-else yapısı

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

C PROGRAMLAMA D İ L İ

Giris {\} /\ Suhap SAHIN Onur GÖK

STRİNG DİZİLER(KATARLAR)

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

Döngü ve Koşul Deyimleri

Temel Bilgisayar Programlama

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Yrd. Doç. Dr. Caner ÖZCAN

Temel Bilgisayar Bilimleri Ders Notu #4-1. kısım

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİL1001 Bilgisayar Bilimlerine Giriş 1

Bigisayar Programlama

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

C PROGRAMLAMA D İ L İ

Transkript:

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN 122132151 Fahri DÖNMEZ DANIŞMAN Dr. Mehmet ŞİMŞEK Kasım 2014

Verilen tek yönlü bağlantılı liste uygulamasının kodları değiştirilerek iki yönlü bağlantılı liste uygulaması yazıldı. Yazılan uygulamanın kaynak kodlarını ve derlenmiş dosyayı ekte gönderilmiştir. 2

Uygulamanın test adımları aşağıdaki gibidir: Kayıt eklemek için E tuşu girilir. Bilgi olarak tamsayı 1 ve mesaj olarak A girilir. Tekrar kayıt eklemek için yine E girilir. Bilgi olarak tamsayı 2 ve mesaj olarak B girilir. Tekrar kayıt eklemek için yine E girilir. Bilgi olarak tamsayı 3 ve mesaj olarak C girilir. 3

L tuşu ile girilmiş bilgiler listelenir. A tuşu ile arama işlemine girilir. Aranan a da tam sayı olarak girdiğimiz bilgi 2 girince bilgi bulunup ekrana getirilir. 4

Silme işlemi için S tuşu girilir. Seçiminiz olarak sorduğunda tamsayı olarak listeye girdiğimiz silinecek 2 yi girdim ve bilgi silindi. Silme işleminin gerçekleştiğini görmek için L ile listelediğimizde 2 bilgisinin silindiği gözüküyor. C ile de uygulamadan çıkıyoruz. Uygulamanın kodları ekte de.c dosyasında vardır. /*Ahmet Yesevi Üniversitesi*/ /*Bilgisayar Mühendisliği Uzaktan Eğitim Programı 2014 - Fahri Dönmez*/ /*Veri Yapıları ve Algoritmaları - Mehmet Şimşek*/ /* Listedeki düğümlerin veri yapısı tanımlaması */ #include <stdio.h> 5

#include <stdlib.h> #include <conio.h> #include <locale.h> typedef struct topluluk int bilgi; char mesaj[100]; struct topluluk *on; struct topluluk *arka; BLISTE2; /* Listenin ilk ve son düğüm adreslerinin tutan işaretçileri */ BLISTE2 *ilk2=null, *son2=null; /* Fonksiyon bildirimleri */ BLISTE2 *arama(int); BLISTE2 *silme(int); BLISTE2 *okuklavye(); void yazekrana(bliste2 *); /* Ana Program*/ main() BLISTE2 *eklenecek, *ki; int bilgi, sonuc; char secim; setlocale(lc_all,"turkish"); puts("\nahmet Yesevi Uluslararası Türk Kazak Üniversitesi"); puts("\nbilgisayar Mühendisliği 2014 - Fahri Dönmez"); puts("\nveri Yapıları ve Algoritmaları "); puts("\niki Yönlü Bağlantılı Liste Uygulaması"); puts("\nekleme\nlisteleme\narama\nsilme\nçıkış\nseçiminiz?"); while(1) secim=getchar(); switch(secim) case 'E': eklenecek=okuklavye(); 6

if(eklenecek!=null) ekle(eklenecek); else puts("ekleme için Bellek Dolu\n"); break; case 'L': sonuc=listele(); if(sonuc==-1) puts("boş Liste!"); break; case 'A': puts("aranan:"); scanf("%d", &bilgi); ki=arama(bilgi); if(ki==null) puts("aranan Bulunamadı"); else yazekrana(ki); break; case 'S': puts("silinecek:"); scanf("%d", &bilgi); ki=silme(bilgi); if(ki!=null) puts("silindi..."); else puts("silinmek istenen yok!"); break; case 'ç': case 'Ç': case 'c': case 'C': puts ("Hoşçakal!"); exit(0); case '\n': puts("\nekleme\nlisteleme\narama\nsilme\nçıkış\nseçiminiz?"); break; default: puts("yanlış Seçim!!!"); /* switch'in */ /* while döngüsünün */ /* ana programın */ 7

/* Kayıt ekleme fonksiyonu */ int ekle(bliste2 *ki) if(ilk2!=null) /* halıhazırda kayıt var mı? */ son2->arka=ki; /* arkaya bağla */ ki->on=son2; /* öne bağla */ son2=ki; /* son düğüm yeni eklenen */ son2->arka=null; /* son düğümün arkası NULL */ else /* ilk düğüm ise burası yürütülür */ ilk2=ki; /* ilk ve son düğüm aynı */ son2=ki; ilk2->arka=null; ilk2->on=null; return 0; /* Listedeki tüm kayıtları listeleme */ int listele() BLISTE2 *p; p=ilk2; if(p==null) return -1; /* boş liste ise dön */ while(p) yazekrana(p); /* düğümün içeriğini ekrana yazıyor */ p=p->arka; return 0; /* arama yapar ve ilk bulduğu düğümün adresini gönderir */ BLISTE2 *arama(int aranan) 8

BLISTE2 *p; p=ilk2; while(p!=null) if(p->bilgi==aranan) return p; /* bulunursa adresi gönderiliyor */ p=p->arka; /* bir sonraki düğümün adresi */ return NULL; /* bulunamadı anlamında NULL gönderiliyor */ /* düğüm silme fonksiyonu */ BLISTE2 *silme(int silinen) BLISTE2 *p; p=arama(silinen); if(p==null) return NULL; if(ilk2==p) /* ilk düğüm mü? */ if(ilk2->arka!=null) /* listede birden çok düğüm var */ ilk2=p->arka; ilk2->on=null; else /* listede yalnızca bir düğüm var */ ilk2=null; son2=null; else /* aradan bir düğüm mü? */ p->on->arka=p->arka; if(p==son2) /* silinen son düğüm ise */ son2=son2->on; else p->arka->on=p->on; free(p); return p; 9

/* Bir kayıt bilgisini ekrana yazar */ void yazekrana(bliste2 *yazilacak) printf("bilgi:%d, mesaj:%s\n",yazilacak->bilgi, yazilacak->mesaj); /* Bir kayıt bilgisini klavyeden okur; dinamik olarak yerleştirir */ BLISTE2 *okuklavye() BLISTE2 *okunan; okunan=malloc(sizeof(bliste2)); /* dinamik olarak yer isteniyor */ if(okunan==null) /* boş yer verildi mi? */ return NULL; /* boş yer yok ise NULL gelir */ puts("bilgi Giriniz:"); scanf("%d",&(okunan->bilgi)); puts("mesaj Giriniz:"); scanf("%s", okunan->mesaj); return okunan; /* bilginin yerleştirildiği adres gönderiliyor */ 10