Listing 6

/*
 * ln_seq.cpp - line number sequence implementation
 */
#include <stdio.h>

#include "ln_seq.h"

ln_seq::ln_seq()
   {
   first =0;
   }

void ln_seq::add(unsigned n)
   {
   listnode *p = first;
   if (first == 0)
      {
      first = new listnode;
      first->number = n;
      first->next = NULL;
      }
   else
      {
      while (p->next != 0 && p->number != n)
         p = p->next;
      if (p->number != n)
         {
         p = p->next = new listnode;
         p->number = n;
         p->next = 0;
         }
      }
   }

void ln_seq::print()
   {
   listnode *p;
   
   for (p = first; p != 0; p = p->next)
      printf("%4d ", p->number);
   }