Listing 5 Member function definitions for lns using a single pointer

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

#include "lns.h"

lns::~lns()
   {
   node *p;
   while ((p = first) != 0)
      {
      first = first->next;
      delete p;
      }
   }

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

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

// End of File