data structure cplusplus yardım

sumeyyepars (1) 9 yıl önce sordu

c++ linked list proje ödevim var bi fonksiyonda takıldık yardım edebilcek biri var mı acaba

Toplam 2 cevap


feritarslan (303) 9 yıl önce cevapladı

biraz daha açıklayıcı olmalısın

Örn:

  • Şunu yapmak isterken şu oldu
  • Şöyle yapmak istiyorum
  • Şunu yapmak isterken şu oluyor
  • Şunu nasıl yaparım gibi...

Ama Anladığım Kadarı ile yardımcı olayım;

Bir yapıyı tanımlamak için, yapı deyimini kullanmanız gerekir.Struct deyimi program için birden fazla üyesi ile, yeni bir veri türü tanımlar.Struct deyiminin biçimi şudur:

struct [structure tag]

{
   member definition;
   member definition;
   ...
   member definition;
} [one or more structure variables];

Yapısı etiketi isteğe bağlıdır ve her üye tanım gibi i int gibi normal bir değişken tanımı ise; veya f float; veya başka herhangi bir geçerli değişken tanımı.Yapılar tanımının sonunda, nihai noktalı virgül önce, bir veya daha fazla yapı değişkenleri belirtebilirsiniz ancak isteğe bağlıdır. Burada Kitap yapısını ilan edeceğiniz yol budur:

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
}book;  

Bir Yapının Herhangi bir Üyesine Erişmek (Accessing Structure Members:);

Bir yapının herhangi bir üyesine erişmek için, üye erişimi operatörü olarak  (.) Kullanılmasıdır.Üye erişimi operatörü yapısı değişken adı ve biz erişmek istediğiniz yapı elemanı arasında bir dönem olarak kodlanmıştır. Siz yapı türü değişkenleri tanımlamak için struct anahtar sözcüğü kullanmak istiyorsunuz. Yapının kullanımını açıklamak için örnek aşağıdadır:

#include <iostream>
#include <cstring>
 
using namespace std;
 
struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( )
{
   struct Books Book1;        // Declare Book1 of type Book
   struct Books Book2;        // Declare Book2 of type Book
 
   // book 1 specification
   strcpy( Book1.title, "Learn C++ Programming");
   strcpy( Book1.author, "Chand Miyan"); 
   strcpy( Book1.subject, "C++ Programming");
   Book1.book_id = 6495407;

   // book 2 specification
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Yakit Singha");
   strcpy( Book2.subject, "Telecom");
   Book2.book_id = 6495700;
 
   // Print Book1 info
   cout << "Book 1 title : " << Book1.title <<endl;
   cout << "Book 1 author : " << Book1.author <<endl;
   cout << "Book 1 subject : " << Book1.subject <<endl;
   cout << "Book 1 id : " << Book1.book_id <<endl;

   // Print Book2 info
   cout << "Book 2 title : " << Book2.title <<endl;
   cout << "Book 2 author : " << Book2.author <<endl;
   cout << "Book 2 subject : " << Book2.subject <<endl;
   cout << "Book 2 id : " << Book2.book_id <<endl;

   return 0;
}

Yukarıdaki kod derlenmiştir ve çalıştırıldığında, aşağıdaki sonucu üretir:

Book 1 title : Learn C++ Programming
Book 1 author : Chand Miyan
Book 1 subject : C++ Programming
Book 1 id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Yakit Singha
Book 2 subject : Telecom
Book 2 id : 6495700

Fonksiyon değişkenlerinin Yapıları (Structures as Function Arguments):

Başka değişken veya işaretçiye geçmek gibi çok benzer bir şekilde bir fonksiyon argüman olarak bir yapı iletebilirsiniz. Siz yukarıdaki örnekteki gibi benzer şekilde yapı değişkenleri ulaşabilirsiniz:

örnekile daha iyi anlayacaksınız sanırım;

#include <iostream>
#include <cstring>
 
using namespace std;
void printBook( struct Books book );

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( )
{
   struct Books Book1;        // Declare Book1 of type Book
   struct Books Book2;        // Declare Book2 of type Book
 
   // book 1 specification
   strcpy( Book1.title, "Learn C++ Programming");
   strcpy( Book1.author, "Chand Miyan"); 
   strcpy( Book1.subject, "C++ Programming");
   Book1.book_id = 6495407;

   // book 2 specification
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Yakit Singha");
   strcpy( Book2.subject, "Telecom");
   Book2.book_id = 6495700;
 
   // Print Book1 info
   printBook( Book1 );

   // Print Book2 info
   printBook( Book2 );

   return 0;
}
void printBook( struct Books book )
{
   cout << "Book title : " << book.title <<endl;
   cout << "Book author : " << book.author <<endl;
   cout << "Book subject : " << book.subject <<endl;
   cout << "Book id : " << book.book_id <<endl;
}

Yukarıdaki kod derlenmiştir ve çalıştırıldığında, aşağıdaki sonucu üretir:

Book title : Learn C++ Programming
Book author : Chand Miyan
Book subject : C++ Programming
Book id : 6495407
Book title : Telecom Billing
Book author : Yakit Singha
Book subject : Telecom
Book id : 6495700

Yapılar için İşaretçiler (Pointers to Structures):

Eğer herhangi bir değişken için işaretçi tanımlamak isterseniz, Aşağıdaki gibi tanımlayabilirsiniz.

struct Books *struct_pointer;

Şimdi, yukarıda tanımlanan işaretçi değişkenini bir yapı değişkeninin adresinde saklayabilirsiniz. Aşağıdaki gibi bir yapı değişkeninin adresini bulmak için, yapının adından önce ''&''(Tırnaklar Yok) operatörünü koyun:

struct_pointer = &Book1;

Aşağıdaki gibidir operatörü -> bu yapı için bir işaretçi kullanarak bir yapının üyeleri erişmek için kullanmanız gerekir

struct_pointer->title;

 

Daha iyi kavramanız için;

#include <iostream>
#include <cstring>
 
using namespace std;
void printBook( struct Books *book );

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};
 
int main( )
{
   struct Books Book1;        // Declare Book1 of type Book
   struct Books Book2;        // Declare Book2 of type Book
 
   // Book 1 specification
   strcpy( Book1.title, "Learn C++ Programming");
   strcpy( Book1.author, "Chand Miyan"); 
   strcpy( Book1.subject, "C++ Programming");
   Book1.book_id = 6495407;

   // Book 2 specification
   strcpy( Book2.title, "Telecom Billing");
   strcpy( Book2.author, "Yakit Singha");
   strcpy( Book2.subject, "Telecom");
   Book2.book_id = 6495700;
 
   // Print Book1 info, passing address of structure
   printBook( &Book1 );

   // Print Book1 info, passing address of structure
   printBook( &Book2 );

   return 0;
}
// This function accept pointer to structure as parameter.
void printBook( struct Books *book )
{
   cout << "Book title : " << book->title <<endl;
   cout << "Book author : " << book->author <<endl;
   cout << "Book subject : " << book->subject <<endl;
   cout << "Book id : " << book->book_id <<endl;
}

 

 

Yukarıdaki kod derlenmiştir ve çalıştırıldığında, aşağıdaki sonucu üretir:

Book title : Learn C++ Programming
Book author : Chand Miyan
Book subject : C++ Programming
Book id : 6495407
Book title : Telecom Billing
Book author : Yakit Singha
Book subject : Telecom
Book id : 6495700
sumeyyepars (1) 9 yıl önce cevapladı

bi proje var 5 tane maç skorunu random girdik. daha sonra yeni maç skorları girilcek ama bizim görmemiz gereken bütün maç skorları arasından en büyük 5 tanesi olcak. yani bizim sayılarımız 25 30 47 68 70 ise sonraki maç sayısı 42 ise 25 i silcek 42yi eklicek. biz random sayıları yapabildik. minimumu bulmayı da hallettik ama delete fonksiyonunu yazarken hata veriyor neresinde anlayamadık. bu konuda yardıma ihtiyacımız var