#include <stdio.h>
#include <malloc.h>
struct ev_entry {
int when;
struct ev_entry *next;
int id;
};
static struct ev_entry *tasks = NULL;
int seed=1;
void eventAdd(int id,int when)
{
struct ev_entry *event =(struct ev_entry*) malloc(sizeof(struct ev_entry));
struct ev_entry **E;
event->when = when;
event->id = id;
/* Insert after the last event with the same or earlier time */
printf("----------------------------------------------/n");
printf("&tasks=%x/n",&tasks);
printf("tasks=%x/n",tasks);
for (E = &tasks; *E; E = &(*E)->next)
{
printf("%d/n",(*E)->id);
printf("E=%x/n",E);
printf("*E=%x/n",*E);
if ((*E)->when > event->when)
break;
}
printf("E=%x/n",E);
printf("*E=%x/n",*E);
printf("event=%x/n",event);
event->next = *E;
printf("event->next=%x/n",event->next);
printf("&(event->next)=%x/n",&(event->next));
*E = event;
printf("*E=%x/n",*E);
}
int main()
{
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(seed++,seed++);
printf("*********************************************************/n");
eventAdd(8,8);
printf("%d",seed++);
return 0;
}