Last active
August 29, 2015 13:56
-
-
Save tothandras/9176433 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* fordit.c | |
* Egész számokat olvas be egy listába, majd fordított | |
* sorrendben kiírja azokat. | |
* | |
*/ | |
#include <iostream> | |
using namespace std; | |
typedef struct lancElem { | |
int adat; // egész adat | |
double dummy[1000]; // teszteléshez kell, ne törölje! | |
struct lancElem *kov; // pointer a következő láncelemre | |
} lancElem; | |
/* | |
* Felvesz egy uj elemet és a lista elejére fűzi. | |
* @param p - lista jelenlegi eleje | |
* @param i - új adat | |
* @return lista elejére mutató pointer. Hiba esetén NULL | |
*/ | |
lancElem *befuz(lancElem *p, int i) { | |
lancElem *uj = new lancElem(); // új elem felvétele | |
if (uj != NULL) { // ha nincs hiba | |
uj->adat = i; // új adat | |
uj->kov = p; // lista elejére teszi | |
} | |
return uj; | |
} | |
/* | |
* Kiírja a listát. | |
* @param p - lista eleje | |
*/ | |
void kiir(lancElem *p) { | |
while (p != NULL) { // amig el nem érjük a végét | |
cout << p->adat; // adat kiírása | |
p = p->kov; // következő elemre | |
} | |
} | |
/* | |
* Felszabadítja a listát. | |
* @param p - lista eleje | |
*/ | |
void felszabadit(lancElem *p) { | |
if (p->kov != NULL) | |
felszabadit(p->kov); | |
delete p; | |
} | |
int main() { | |
lancElem *kezdo = NULL; // üres lista | |
int x; | |
while(scanf("%d", &x) == 1) { // amíg van helyes input | |
try { | |
lancElem *tmp = befuz(kezdo, x);// befűzzük | |
} catch (bad_alloc& ba) { | |
felszabadit(kezdo); | |
return 1; | |
} | |
} | |
kiir(kezdo); // kiírjuk | |
felszabadit(kezdo); // felszabadítja a listát | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment