// linkedListDemo.cpp for CISC181   11/16/04
// P. Conrad

#include <iostream>
#include <cstring>
using namespace std;

#define NAMELEN 10

struct Score_S
{
  char name[NAMELEN];
  int score;
  Score_S *next;
};


int main(void)
{
  Score_S *p; // a "working" pointer for allocating new structs
  Score_S *head, *tail; // points to head and tail of linked list

  p = new Score_S;

  strncpy((*p).name,"Fred",NAMELEN);
  (*p).name[NAMELEN-1]='\0';
  (*p).score = 98;
  (*p).next = NULL;

  head = p;

  p = new Score_S;
  strncpy(p->name, "Sheila", NAMELEN);
  p->name[NAMELEN-1]='\0';
  p->score = 99;
  p->next = NULL;

  head -> next = p;
  tail = p;

  p = new Score_S;
  strncpy(p->name, "Jay", NAMELEN);
  p->name[NAMELEN-1]='\0';
  p->next = NULL;
  p->score = 73;
  
  tail -> next = p;
  tail = p;


  for (Score_S *q=head; q!=NULL; q=q->next)
    {
      cout << q->name<< " " << q->score << endl;
    }

}

