Beispiel #1
0
/* --- Function: void enqueue_node(Queue que) --- */
void enqueue_node(Queue que)
{
  int tmp, *pi;
  char mess[BUFSIZ];

  do
    {
      my_clearscrn();
      printf("--- ENQUEUE NODE TO QUEUE ---\n");
      printf("\nCurrent queue status(%d nodes): ", QUEUEsize(que));
      SLISTtraverse(que, print, SLIST_FWD);

      tmp = read_int("\nEnter integer data of node to be enqueued (-1=Quit): ", 0, 0);

      if (tmp == -1)
        break;

      pi = (int *)malloc(sizeof(int));
      MALCHK(pi);

      *pi = tmp;

      if ((QUEUEenqueue(que, pi)) != OK)
        {
          printf("\nFatal error enqueing data - exiting...!");
          QUEUEdestroy(que);
          exit(-1);
        }
      else
        {
          sprintf(mess, "Node %d will be enqueued!", *pi);
          prompt_and_pause(mess);
        }
    } while (TRUE);
}
Beispiel #2
0
/* --- void queue_elements(Queue que, int nr_of_ele) --- */
void queue_elements(Queue que, int nr_of_ele)
{
  int i=0, *pi, retval;

  do
    {
      pi = (int *)malloc(sizeof(int));
      *pi = my_random(1,50);
      retval = QUEUEenqueue(que, pi);
      assert(retval == OK);
    } while (++i < nr_of_ele);

  printf("\nCurrent queue content(%d elements): ", QUEUEsize(que));
  /* This call to SLISTtraverse is possible - although this function is NOT a member
     of the queue (public) interface - but because a queue is also a list ! */
  SLISTtraverse(que, print, SLIST_FWD);
}
Beispiel #3
0
/* --- Function: void queue_nodess(Queue que, Stack stk, int nr_of_ele) --- */
void enqueue_push_nodes(Queue que, Stack stk, int nr_of_ele)
{
  int i=0, *pi, retval;

  my_clearscrn();
  printf("--- CREATING QUEUE AND STACK (%d nodes each), RANDOM INTEGER DATA ---\n", NR_OF_ITEMS);

  do
    {
      /* Create dyn. memory, store random nr - and enqueue... */
      pi = (int *)malloc(sizeof(int));
      MALCHK(pi);

      *pi = rand_int(1,50);

      retval = QUEUEenqueue(que, pi);
      assert(retval == OK);

      /* Create dyn. memory, store random nr - and push... */
      pi = (int *)malloc(sizeof(int));
      MALCHK(pi);

      *pi = rand_int(1,50);

      retval = STACKpush(stk, pi);
      assert(retval == OK);

    } while (++i < nr_of_ele);

  printf("\nCurrent queue and stack status: ");
  printf("\nQueue(%d nodes): ", QUEUEsize(que));
  SLISTtraverse(que, print, SLIST_FWD);
  printf("\nStack(%d nodes): ", STACKsize(stk));
  SLISTtraverse(stk, print, SLIST_FWD);
  prompt_and_pause("\n\n");
}