Responsive image Boda Szilárd weblapja

Laborfeladat

1. Hozzunk létre egy egyszeresen láncolt listát, amely n elemet tartalmaz, s írassuk ki.
(Minden elem egy int típusú mezőt fog tartalmazni, illetve a mutatót a következő elemre.)
Ezután keressük meg a lista minimum elemét és írassuk ki
 

2. Hozzunk létre egy egyszeresen láncolt listát, amely minden egyes eleme két értékes tartalmaz, egy pos1, s egy pos2t.
Olvassunk be egy ilyen listát, addig, amíg pos1 s pos2 nem lesz egyenlő nullával, majd írjuk ki a maximális pos1, pos2 számpárt.

Házi Feladat
1. Hozzunk létre egy egyszeresen láncolt listát, amely n elemet tartalmaz. (az n et a billentyűzetről olvassuk be)
Minden elem tartalmaz egy int tipusú mezőt, s egy stringet, amiket billentyűzetről olvasunk be.
Aztán keressük meg azt a listaelemet, amelynek a számértéke a legnagyobb, s írjuk ki a az illető elemben levő szöveget.


Bemenet
  • N=5
  • 1
  • alma
  • 2
  • korte
  • 16
  • malna
  • 4
  • ribizli
  • 8
  • cseresznye



Kimenet
  • malna

Beküldési határidő
2020 február 22, 23:59, az ezután küldött házik 4 esek lesznek, ha tökéletesek, 1 ha nem.
A házi elnevezése: H05_Pelda_Bela.cpp, Pelda Bela helyett az aktuális vezeték és keresztnévvel.
Ne legyenek benne ékezetek, üres helyek, vagy egyéb írásjelek, stb.!
Azoknál a háziknál, amelyek kísértetiesen hasonlítanak (másolás, ugyanonnan inspirálódtak, stb,)
mindkettőnek 1 es jár.
Így kell átnevezni



Megoldott feladat:


#include<iostream>


using namespace std;

//a lista deklaralasa globalisan

//C++ ban ezt kulon classbe kellene deklaralni

struct lista {

    //a szamertek egy elemen belul

   int ertek;

   //mutato a kovetkezo elemre

   lista * kov;

};


int main() {

    //ures lista letrehozasa, amely egy nulla elemre mutat tovabb

   lista * mutato = NULL;

   int i;

   for(i=0;i<10;i++) {

        //uj nem ures elem letrehozasa

      lista * ujelem = new lista;

    //az uj elem int mezojenek adunk erteket

      ujelem->ertek = i;

    //a kovetkezo elem az a mutatora fog mutatni, ami eloszor a semmibe mutat (vagyis jelzi, hogy vege van)
    //aztan az elso elemre, majd a semmibe mutat, aztan a masodik elemre, elso elemre majd a semmibe mutat, stb
      ujelem->kov  = mutato;

      //a mutatonak megfeleltetjuk az ujonnan letrehozott elemet
      mutato = ujelem;
   }

   //lista kiirasa
   while(mutato) {

      cout << mutato->ertek << " ";
      mutato = mutato->kov ;
   }

   return 0;

}

2. Hozzunk létre egy olyan egyszeresen láncolt listát, amiben egy diáknév és egy infójegy van,
majd számítsuk ki az infóhegyek átlagát. és írjuk ki az átlag alatti diákokat!

#include<iostream>
using namespace std;
struct lista {
float infojegy;
string nev;
lista * kov;
};
int main() {
lista * mutato = NULL;
int n;
cout << "n = " ;
cin >> n ;
int i;
for(i=0;i<n;i++) {
lista * ujelem = new lista;
cout << "Kerem a nevet " ;
cin >> ujelem->nev;
cout << "Kerem az info jegyet" ;
cin >>ujelem->infojegy ;
ujelem->kov = mutato;
mutato = ujelem;
}
lista * tempmutato = mutato;
float atlag=0;
while(tempmutato) {
//cout << tempmutato->nev << " ";
atlag+= tempmutato->infojegy;
tempmutato = tempmutato->kov ;
}
atlag/=n;
while(mutato) {
//cout << tempmutato->nev << " ";
if (atlag>mutato->infojegy)
{
cout << mutato->nev << " " << endl ;
}
mutato = mutato->kov ;

}
cout << endl;
return 0;
}