Gjithashtu edhe nje implementim te simpleInsert(char *fjale) por kete rradhe duke perdorur vetem dy hallkat "bisht" dhe "koke" si hallka globale, dhe do sqaroj nje detaj tek i cili ngaterrohen shpesh te porsa ardhurit ne C, qe ishte edhe arsyeja e krijimit te rootP e cila normalisht eshte e panevojshme.
Kodi:
struct lNode * simpleInsert(char * insert)
{
char *tempString;
struct lNode * temP;
if( (tempString = (char *) malloc(strlen(insert) * sizeof(char) +1 ) ) == NULL) /* Alokohet memorje \
e mjaftueshme per fjalen, nese nuk ka vend te mjaftueshem ne Memorje dalim menjehere */
{
printf("out of memory");
freeMemory();
exit(1);
}
strcpy(tempString, insert); /
if(isRepeated(tempString)) { free(theLinePtr); return NULL; }
if( (temP = (struct lNode *) malloc(sizeof(ListNode) )) == NULL) /* Alokohet memorje \
e mjaftueshme per nje strukture lNode, nese nuk ka vend te mjaftueshem ne Memorje dalim menjehere */
{
printf("out of memory");
freeMemory();
exit(1);
}
headP->prev->next = temP; /* KUJDES (head->prev) eshte hallka para headP dhe mbi ate punojme \
duke dereferencuar next */
temP->prev = headP->prev; /* KUJDES menjehere prev i temP merr adresen e prev te headP qe tashme \
do jete pas temP */
headP->prev = temP;
temP->next = headP;
temP->string = tempString;
}
free(theLinePtr); /* Lirohet rreshti qe u alokua ne getNextLine, \
shume kujdes duhet bere ne lirimet e memorjes */
}
Krijoni Kontakt