linus (napisa): |
zanima me
1) smijem li napisati neke pomocne funkcije koje ne ovise o implementaciji (npr. mogu li napisati pomoćnu funkciju isnum(a) koja radi isto sto i isalpha, samo za brojeve)? 2) vezano za gornje, mogu li napisati funkciju koja vraca prioritet operatora (u slucaju citanja pre/postfix izraza)? 3) kako se desava 'predaja' programa, tj. dal donesemo te programe na usb-u, isprintate ili ih pisemo pred asistentom u praktikumu? Hvala unaprijed |
Kod: |
node CREATE(char *t, BTREE TL, BTREE TR, BTREE *Tr)
{ *Tr=(celltype*)malloc(sizeof(celltype)); strcpy((*Tr)->znak,t); (*Tr)->leftchild=TL; (*Tr)->rightchild=TR; return (*Tr); } |
Kod: |
void preorder2tree_1(BinaryTree* T) { char s[5]; char c; BinaryTree TL, TR; BiMakeNull(&TL); BiMakeNull(&TR); scanf("%s", s); scanf("%c", &c); if(strcmp(s, "NULL")==0) return; else { if(c=='\n') BiCreate(s[0], TL, TR, T); else { preorder2tree_1(&TL); preorder2tree_1(&TR); BiCreate(s[0], TL, TR, T); } } } probala sam i ovo, gdje gledam jesam li ucitala zadnji string: int sagradi1(BinaryTree *T) { char s[5]; char c; int zadnji=0, a=0; BinaryTree TL, TR; BiMakeNull(&TL); BiMakeNull(&TR); scanf("%s", s); scanf("%c", &c); if(c=='\n') zadnji=1; if(strcmp(s, "NULL")==0) return 0; if(zadnji==1) { BiCreate(s[0], TL, TR, T); return 1; } else { a=sagradi1(&TL); if(a==1) {BiCreate(s[0], TL, TR, T); return 1;} a=sagradi1(&TR); if(a==1) { {BiCreate(s[0], TL, TR, T); return 1;} } BiCreate(s[0], TL, TR, T); } return 0; } |
Kod: |
int sagradi1(BinaryTree *T) { char s[5]; char c; int zadnji=0, a=0; BinaryTree TL, TR; BiMakeNull(&TL); BiMakeNull(&TR); scanf("%s", s); scanf("%c", &c); if(c=='\n') zadnji=1; if(strcmp(s, "NULL")==0 && zadnji) return 1; if(strcmp(s, "NULL")==0) return 0; if(zadnji==1) { BiCreate(s[0], TL, TR, T); return 1; } else { a=sagradi1(&TL); BiCreate(s[0], TL, TR, T); if(a==1) return 1; a=sagradi1(&TR); BiCreate(s[0], TL, TR, T); if(a==1) return 1; } return 0; } |
output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.