3_2_3B.C
上传用户:wyn840322
上传日期:2007-01-13
资源大小:294k
文件大小:2k
源码类别:

数据结构

开发平台:

C/C++

  1. /* ======================================== */
  2. /*    程式实例: 3_2_3b.c                  */
  3. /*    链结串列的建立                        */
  4. /* ======================================== */
  5. #include <stdlib.h>
  6. struct llist                      /* 串列结构宣告      */
  7. {
  8.    int num;                       /* 邮寄编号          */
  9.    char name[10];                 /* 邮寄姓名          */
  10.    struct llist *next;            /* 指向下一标签      */
  11. };
  12. typedef struct llist node;        /* 定义新型态        */
  13. typedef node *llink;               /* 定义新型态指标    */
  14. void main()
  15. {
  16.    llink head;                     /* 串列的开始指标    */
  17.    llink ptr,ptr1;
  18.    int i;
  19.    /* 建立第一个节点 */
  20.    head = ( llink ) malloc(sizeof(node)); /* 配置记忆体 */
  21.    if ( !head )                   /* 检查指标          */
  22.    {
  23.       printf("记忆体配置失败! n");
  24.       exit(1);
  25.    }
  26.    printf("输入六项邮寄资料:n");
  27.    printf("请输入编号 ==> ");
  28.    scanf("%d",&head->num);        /* 读取编号          */
  29.    printf("请输入编号(%d)的姓名 ==> ",ptr->num);
  30.    scanf("%s",head->name);        /* 读取姓名          */
  31.    head->next = NULL;             /* 设定指标初值      */
  32.    ptr = head;                    /* 将ptr指向串列开始 */
  33.    for ( i = 1; i < 6; i++ )      /* 建立其它节点回路  */
  34.    {
  35.        ptr1 = ( llink ) malloc(sizeof(node));
  36.        if ( !ptr1 )
  37.        {
  38.           printf("记忆体配置失败! n");
  39.           exit(1);
  40.        }
  41.        printf("请输入编号 ==> ");
  42.        scanf("%d",&ptr1->num);    /* 读取编号          */
  43.        printf("请输入编号(%d)的姓名 ==> ",ptr1->num);
  44.        scanf("%s",ptr1->name);    /* 读取姓名          */
  45.        ptr1->next = NULL;         /* 设定指标初值      */
  46.        ptr->next = ptr1;          /* 连结节点          */
  47.        ptr = ptr->next;           /* 指向下一节点      */
  48.    }
  49.    printf("邮寄资料:n");         /* 印出资料内容      */
  50.    ptr = head;                    /* 将ptr指向串列开始 */
  51.    for ( i = 0; i < 6; i++ )      /* 列印回路          */
  52.    {
  53.       printf("编号: %dn",ptr->num);
  54.       printf("  姓名: %sn",ptr->name);
  55.       ptr = ptr->next;            /* 指向下一节点      */
  56.    }
  57. }