Tek bağlı listede 20 adet öğrencinin adı-soyadı ve numarası girilcektir. Listeye ekleme ve çıkartma işlemleri hem başta hem sonda hem de herhangi bir yerden yapılabilmektedir. Yardımcı olursanız çok sevinirim teşekkürler.
comments
7 references
// Comments are closed.
Tipik programlama ödevi sorusu.
Hangi kısmında sorunun olduğunu söylersen yönlendirebilirim.
İyi çalışmalar
include
include
using namespace std;
struct Dugum{
string veri;
Dugum * sonraki;
};
Dugum basaekle(Dugum head, string veri);
Dugum sonaaekle(Dugum head, string veri);
Dugum bassil(Dugum head, string veri);
Dugum sonsil(Dugum head, string veri);
Dugum yerdensil(Dugum head, string veri);
int elemansayisi(Dugum head);
void listeyazdir(Dugum head);
int main(int argc, char** argv) {
string a; int sayac=0;
//system(“cls”);
Dugum * head;
head = NULL;
sayac++;
cout <<"Giris yapiniz: "<<'\n'; getline(cin, a); head = basaekle(head, a); while(sayac<20) { sayac++; cout <<"Giris yapiniz: "<<'\n'; getline(cin, a); head = basaekle(head, a); } listeyazdir(head); return 0; } Dugum sonaaekle(Dugum head, string veri){ Dugum yeni; yeni = (Dugum) malloc(sizeof(Dugum)); yeni->veri = veri;
yeni->sonraki = NULL;
if(head==NULL){
head = yeni;
} else {
Dugum * gez;
gez = head;
while(gez->sonraki != NULL){
gez= gez->sonraki;
}
gez->sonraki=yeni;
}
return head;
}
void listeyazdir(Dugum * head){
if(head==NULL)
{
cout<< "yok"; } Dugum * gez; gez = head; while(gez!=NULL) { cout<< gez->veri << endl; gez=gez->sonraki;
}
}
Dugum basaekle(Dugum head, string veri){
Dugum yeni;
yeni = (Dugum ) malloc(sizeof(Dugum));
yeni->veri = veri;
yeni->sonraki = NULL;
if (head == NULL) head = yeni;
else {
yeni->sonraki = head;
head = yeni;
}
return head;
}
Kodu çalıştıracak bir ortam kurulu değil.Sen hata mesajını paylaşır mısın?
programı çalıştırdığımda döngü sonsuza gidiyor.
![][1]
[1]: https://hasscript.com/?qa=blob&qa_blobid=17268761625678578058
Kodunu düzgün yapıştırır mısın? Çalıştırmayı deniyorum bir sürü hata alıyor.
yapıştırdıktan sonra seçip hemen üstte kod butonu var ona tıklarsan iyi olur { } şeklinde
#include
#include
#include
using namespace std;
struct Dugum{
string veri;
Dugum * sonraki;
};
Dugum * basaekle(Dugum * head, string veri);
Dugum * sonaaekle(Dugum * head, string veri);
Dugum * bassil(Dugum * head, string veri);
Dugum * sonsil(Dugum * head, string veri);
Dugum * yerdensil(Dugum * head, string veri);
int elemansayisi(Dugum * head);
void listeyazdir(Dugum * head);
int main(int argc, char** argv) {
string a;
system(“cls”);
Dugum * head;
head = NULL;
cout <<"Giris yapiniz: "<<'\n'; getline(cin, a); head = basaekle(head, a); listeyazdir(head); return 0; } Dugum * sonaaekle(Dugum * head, string veri){ Dugum * yeni; yeni = (Dugum *)malloc(sizeof(Dugum)); yeni->veri = veri;
yeni->sonraki = NULL;
if(head==NULL){
head = yeni;
}
else{
Dugum * gez;
gez = head;
while(gez->sonraki != NULL){
gez= gez->sonraki;
}
gez->sonraki=yeni;
}
return head;
}
void listeyazdir(Dugum * head){
if(head==NULL) {
cout<< "yok"; } Dugum * gez; gez = head; while(gez!=NULL) { cout<< gez->veri << endl; gez=gez->sonraki;
}
}
Dugum * basaekle(Dugum * head, string veri){
Dugum * yeni;
yeni = (Dugum *)malloc(sizeof(Dugum));
yeni->veri = veri;
yeni->sonraki = NULL;
if (head == NULL)
head = yeni;
else{
yeni->sonraki = head;
head = yeni;
}
return head;
}
Kodun buraya kadar gayet güzel çalıştı.
Ben sadece for içinde 3 kez dışarıdan değer aldırdım ve ekrana yazdım bi sıkıntı çıkmadı. Benim yazdığım kodu buraya ekleyeyim tekrar.
Ayrıca Başa ekle de yaptığın gibi head değişkeninin yanına bir de tail değişkeni ekleyeceksin. Bu da sonraki node bilgisini tutacak. Sona ekleyi de onun üzerinden yapman gerekecek. Aksi halde bütün listeyi baştan sonra geçip öyle eklemen gerekir. Aşama aşama ilerle bakalım. Yardımcı olmaya çalışırım ben sana burdan.
#include
#include
#include
using namespace std;
struct Dugum{
string veri;
Dugum * sonraki;
};
Dugum * basaekle(Dugum * head, string veri);
Dugum * sonaaekle(Dugum * head, string veri);
Dugum * bassil(Dugum * head, string veri);
Dugum * sonsil(Dugum * head, string veri);
Dugum * yerdensil(Dugum * head, string veri);
int elemansayisi(Dugum * head);
void listeyazdir(Dugum * head);
int main(int argc, char** argv) {
string a;
system(“cls”);
Dugum * head;
head = NULL;
for(int i = 0 ; i < 3 ; i++) { cout <<"Giris yapiniz: "<<'\n'; getline(cin, a); head = basaekle(head, a); } listeyazdir(head); return 0; } Dugum * sonaaekle(Dugum * head, string veri){ Dugum * yeni; yeni = (Dugum *)malloc(sizeof(Dugum)); yeni->veri = veri;
yeni->sonraki = NULL;
if(head==NULL){
head = yeni;
}
else{
Dugum * gez;
gez = head;
while(gez->sonraki != NULL){
gez= gez->sonraki;
}
gez->sonraki=yeni;
}
return head;
}
void listeyazdir(Dugum * head){
if(head==NULL) {
cout<< "yok"; } Dugum * gez; gez = head; while(gez!=NULL) { cout<< gez->veri << endl; gez=gez->sonraki;
}
getchar();
}
Dugum * basaekle(Dugum * head, string veri){
Dugum * yeni;
yeni = (Dugum *)malloc(sizeof(Dugum));
yeni->veri = veri;
yeni->sonraki = NULL;
if (head == NULL)
head = yeni;
else{
yeni->sonraki = head;
head = yeni;
}
return head;
}
İlgi ve alakanız için çok teşekkür ederim söylediklerinizi deneyeceğim.