Hirdetés
- Szívesen használsz Samsung böngészőt? Most már PC-n is megteheted
- A klasszikus átnevezős trükkhöz nyúl az AMD a mobil Ryzeneknél
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- Az AI miatt biztonságosabb az Android, mint az iPhone
- Hirtelen rájött az AMD, hogy mégsem szűnt meg egy funkció az egyes Radeonokon
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen monitort vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen házat vegyek?
- Androidos tablet topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Catalyst™ driverek topikja
- Veszélyben az adataid? Gond van a WD népszerű HDD-ivel
- Kormányok / autós szimulátorok topikja
Új hozzászólás Aktív témák
- 
			
			  blaces tag Közben a harmadikkal is foglalkozom... szinte egésznap, lehet a fáradtságtól nem tudok már oda figyelni rendesen. 
 Feladat:
 [I]Írj programot, amely egy egész számokat tartalmazó szöveges állományból felépít egy bináris fát, és eldönti, hogy a fa inorder és preorder bejárásával ugyanazt a számsorozatot kapja-e! A számokat tartalmazó állomány nevét az első parancssori argumentumként kapja meg a program.A szöveges állomány soronként pontosan egy tízes számrendszerbeli egész számot tartalmaz. A sorokat az újsor karakter (\n) zárja. Az állományt az állomány vége (EOF) jelig kell olvasni. A bináris fa felépítésében két szabályt kell figyelembe venni. Ha a beszúrandó szám nagyobb, mint az, amelyik a gyökérben van, akkor a gyökértől jobbra kerüljön, ha kisebb vagy egyenlő, akkor a gyökér bal oldalára. Azaz ez a fa nem bináris keresőfa. A program járja be a fát inorder és preorder módon. Ha a két bejárás ugyanazt a számsorozatot adja eredményül, akkor a program a második parancssori argumentumként megkapott nevű állományba írja az "igen", különben a "nem" szót. [/I] #include <stdio.h> 
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
 #define HAMIS 0
 #define IGAZ (!HAMIS)
 typedef struct faelem {
 char *adat;
 int szamlalas, input;
 struct faelem *bal, *jobb;
 } FA;
 void beszuras(FA **gyok, char *adat, int fajlnev) {
 if(*gyok == NULL) {
 *gyok = (FA*)malloc(sizeof(FA));
 (*gyok)->adat = (char*)malloc((strlen(adat)+1)*sizeof(char));
 strcpy((*gyok)->adat, adat);
 (*gyok)->szamlalas = 1;
 (*gyok)->input = fajlnev;
 (*gyok)->bal = (*gyok)->jobb = NULL;
 } else if(strcmp((*gyok)->adat, adat) < 0) {
 beszuras(&(*gyok)->jobb, adat , fajlnev);
 } else if(strcmp((*gyok)->adat, adat) > 0) {
 beszuras(&(*gyok)->bal, adat, fajlnev);
 } else if((strcmp((*gyok)->adat, adat) == 0) && ((*gyok)->input != fajlnev)) {
 (*gyok)->szamlalas++;
 (*gyok)->input = fajlnev;
 }
 return;
 }
 void bejaras(FA *gyok, int n) {
 if(gyok != NULL) {
 bejaras(gyok->bal, n);
 if(gyok->szamlalas == n) {
 printf("%s\n",gyok->adat);
 }
 bejaras(gyok->jobb, n);
 }
 return;
 }
 void torles(FA *gyok) {
 if(gyok != NULL) {
 free(gyok->adat);
 torles(gyok->bal);
 torles(gyok->jobb);
 free(gyok);
 }
 return;
 }
 int atugras(int ch) {
 if(ch != (int)' ' && ch != (int)'\n' && ch != (int)'\r' &&
 ch != (int)'\t' && ch != (int)'.' && ch != (int)',' && ch != (int)';' &&
 ch != (int)EOF) {
 return HAMIS;
 }
 return IGAZ;
 }
 char *memoriafoglalas(char *szo, int j) {
 return (szo == NULL) ?
 (char*)malloc(sizeof(char)) : (char*)realloc(szo,(j+1)*sizeof(char));
 }
 int main(int argc, char **argv) {
 FILE **fp = NULL;
 char *szo = NULL;
 int ch;
 FA *gyok = NULL;
 int i, j;
 if((fp = (FILE**)malloc((argc-1)*sizeof(FILE*)))==NULL)
 exit(1);
 for(i=1;i<argc;++i)
 if((fp[i-1] = fopen(argv[i],"rt+"))==NULL)
 exit(1);
 for(i=1;i<argc;++i) {
 j = 0;
 while((ch = fgetc(fp[i-1]))) {
 if((szo = memoriafoglalas(szo, j))==NULL)
 exit(1);
 if(atugras(ch) == HAMIS) {
 szo[j++] = tolower(ch);
 } else if(j > 0 || ch == (int)EOF) {
 szo[j] = '\0';
 beszuras(&gyok, szo, i-1);
 free(szo);
 szo = NULL;
 j = 0;
 if(ch == (int)EOF) {
 break;
 }
 }
 }
 fclose(fp[i-1]);
 }
 free(fp);
 bejaras(gyok, argc-1);
 torles(gyok);
 return 0;
 }Ez lefordul, csak hibás kimenetet ad vissza  az egyetemi tesztelőn az egyetemi tesztelőn
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Samsung Galaxy Z Fold5 - toldozás-foldozás
- Filmvilág
- Renault, Dacia topik
- Gumi és felni topik
- Milyen NAS-t vegyek?
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen monitort vegyek?
- Marvel Snap
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Lenovo ThinkPad T14S Gen1 Ryzen5 4650U / 8GB DDR
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3330
- Samsung Galaxy S21 Ultra / 12GB RAM 256GB / Gyárifüggetlen / 12Hó Garancia
- ÚJ AKKU!!! Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
- Shining3D EinScan Pro 2X 3D szkenner
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest
 
						 
								 az egyetemi tesztelőn
 az egyetemi tesztelőn

