Alien-Judy
view release on metacpan or search on metacpan
src/judy-1.0.5/test/SLcompare.c view on Meta::CPAN
if (curr == par->left)
{
curr = par;
rightrotate(ans, curr);
par = curr->par;
}
par->colour = BLACK;
if ((gpar = par->par) != NULL)
{
gpar->colour = RED;
leftrotate(ans, gpar);
}
}
}
}
if (curr->par == NULL)
ans->root = curr;
ans->root->colour = BLACK;
}
else
gDupCnt++; /* count duplicate strings */
return;
}
/* Create a node to hold a word */
TREEREC *
wcreate(char *word, TREEREC * par)
{
TREEREC *tmp;
tmp = (TREEREC *) malloc(sizeof(TREEREC));
tmp->word = (char *)malloc(strlen(word) + 1);
strcpy(tmp->word, word);
tmp->left = tmp->right = NULL;
tmp->par = par;
return (tmp);
}
#define INITARRAY ANSREC ans = {0}
#define STORESTRING(STRING) redblackinsert(&ans, STRING)
#define GETSTRING(STRING) redblacksearch(&ans, STRING)
#endif // REDBLACKMETHOD
//=======================================================================
// M A I N P R O G R A M -by- Doug Baskins
//=======================================================================
// error routine for system routines for accessing file
#define FILERROR \
{ \
printf("%s: Cannot open file \"%s\": %s " \
"(errno = %d)\n", argv[0], argv[1], strerror(errno), \
errno); \
fprintf(stderr, "%s: Cannot open file \"%s\": %s " \
"(errno = %d)\n", argv[0], argv[1], strerror(errno), \
errno); \
exit(1); \
}
//=======================================================================
// M E A S U R E A D T S P E E D and M E M O R Y U S A G E
//=======================================================================
int
main(int argc, char *argv[])
{
TIMER_vars(tm); // declare timer variables
int fd; // to read file.
struct stat statbuf; // to get size of file
char *Pfile; // ram address of file
size_t fsize; // file size in bytes
char *FSmap; // start address of mapped file
char *FEmap; // end address+1 of mapped file
char String[MAXLINE]; // input buffer
int StrCnt; // line counter
int ii; // temp
INITARRAY;
// CHECK FOR REQUIRED INPUT FILE PARAMETER:
if (argc != 2)
{
printf("Usage: %s <text file>\n", argv[0]);
exit(1);
}
// GET FILE SIZE
if (stat(argv[1], &statbuf) == -1)
FILERROR;
fsize = statbuf.st_size;
// OPEN INPUT FILE:
if ((fd = open(argv[1], O_RDONLY)) == -1)
FILERROR;
// MEMORY MAP FILE
Pfile =
(char *)mmap(NULL, fsize, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
if (Pfile == (char *)-1)
FILERROR;
FEmap = Pfile + fsize; // set end+1 address
// print command name + run arguments
printf("# ");
for (ii = 0; ii < argc; ii++)
printf("%s ", argv[ii]);
( run in 0.664 second using v1.01-cache-2.11-cpan-817d5f8af8b )