August 16, 2009

using a linked list of structures

#include <stdio.h>
#include <stdlib.h>      /* has the malloc prototype      */
#include <string.h>      /* has the strcpy prototype      */
#define TSIZE    45      /* size of array to hold title   */
struct film {
   char title[TSIZE];
   int rating;
   struct film * next;   /* points to next struct in list */
};

int main(void)
{
   struct film * head = NULL;
   struct film * prev, * current;
   char input[TSIZE];

   puts("Enter first movie title:");
   while (gets(input) != NULL && input[0] != '\0')
   {
      current = (struct film *) malloc(sizeof(struct film));
      if (head == NULL)         /* first structure       */
         head = current;
      else                      /* subsequent structures */
         prev->next = current;

      current->next = NULL;    //表示最後一個node
      strcpy(current->title, input);
      puts("Enter your rating <0-10>:");
      scanf("%d", ¤t->rating);
      while(getchar() != '\n')
         continue;
      puts("Enter next movie title (empty line to stop):");
      prev = current;             //cur變成prev
   }
   if (head == NULL)
      printf("No data entered. ");
   else
      printf ("Here is the movie list:\n");
/* Display Link list*/
   current = head;             //指向第一個node
   while (current != NULL)
   {
      printf("Movie: %s  Rating: %d\n", current->title, current->rating);
      current = current->next;     //重設currnet指標,讓他指向下一個node
   }

   /* Program done, so free allocated memory */
   current = head;
   while (current != NULL)
   {
      free(current);
      current = current->next;
   }
 
   printf("Bye!\n");
   system("pause");
   return 0;
}

0推薦此文章
Today's Visitors: 0 Total Visitors: 5
Personal Category: R&D記事 Topic: technology / tech info / programming
Previous in This Category: goal could make me dependable   Next in This Category: 新工作新生活新希望
[Trackback URL]

Post A Comment









Yes No



Please input the magic number:

( Prevent the annoy garbage messages )
( What if you cannot see the numbers? )
Please input the magic number

誰來收藏
Loading ...
unlog_NVPO 0