#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

 #define MAX_SIZE    100
 #define MIN_SIZE    32

 struct role
 {
     int number;
     char name[MAX_SIZE];
     char sex[MIN_SIZE];
     int age;
     struct role *next;
 };

 struct role *creat()
 {
     struct role *p = NULL;
     struct role *head = NULL;
     struct role *tail = NULL;

     p = (struct role *)malloc(sizeof(struct role));
     printf(" 请输入编号,按0即退出\n");
     printf("编号->");
     scanf("%d", &(p->number));

     )
         return head;

     )
     {
         printf("姓名->");
         scanf("%s", p->name);
         printf("性别->");
         scanf("%s", p->sex);
         printf("年龄->");
         scanf("%d", &(p->age));

         if (head == NULL)
         {
             head = p;
             tail = p;
         }
         else
         {
             tail->next = p;
             tail = p;
         }

     p = (struct role *)malloc(sizeof(struct role));
     printf("请输入编号,按0即退出\n");
     printf("编号->");
     scanf("%d", &(p->number));
     }
     tail->next = NULL;
     free(p);
     return head;
 }

 void display(struct role *head)
 {
     struct role *p = head;
     printf("编号        姓名        性别        年龄\n");
     while (p != NULL)
     {

         printf("%-16d%-16s%-16s%-16d\n",
             p->number, p->name, p->sex, p->age);
         p = p->next;
     }
 }

 int main(void)
 {
     struct role *head = creat();
     display(head);
     ;
 }

需要改进的还很多.

这仅仅是练习~~~~

数据结构,我来了.加油!!!

小小的修改下...(其实就是free几下...咳咳..新人,,见笑了...)

 #include <stdio.h>
 #include <stdlib.h>

 #define MAX_SIZE    50
 #define MIN_SIZE    32

 struct role
 {
     int number;
     char name[MAX_SIZE];
     char sex[MIN_SIZE];
     char address[MAX_SIZE];
     int age;
     struct role *next;
 };

 struct role *creat()
 {
     struct role *head = NULL;
     struct role *p = NULL;
     struct role *tail = NULL;

     p = (struct role *)malloc(sizeof(struct role));
     printf("请输入编号,按0退出\n");
     printf("编号->");
     scanf("%d", &(p->number));

      == p->number)
     {
         free(p);
         ;
     }

      != p->number)
     {
         printf("姓名->");
         scanf("%s", p->name);

         printf("性别->");
         scanf("%s", p->sex);

         printf("地址->");
         scanf("%s", p->address);

         printf("年龄->");
         scanf("%d", &(p->age));

         if (NULL == head)
         {
             head = p;
             tail = p;
         }
         else
         {
             tail->next = p;
             tail = p;
         }
         p = (struct role *)malloc(sizeof(struct role));
         printf("请输入编号,按0退出\n");
         printf("编号->");
         scanf("%d", &(p->number));
     }
     tail->next = NULL;
     free(p);
     return head;
 }

 void display(struct role *head)
 {
     struct role *p = NULL;
     p = head;

     printf("编号        姓名        性别        住址        年龄\n");
     while (NULL != p)
     {
         printf("%-16d%-16s%-16s%-16s%-16d",
             p->number, p->name, p->sex, p->address, p->age);
         p = p->next;
     }
 }

 int main(void)
 {
     struct role *head = NULL;
     head = creat();
     display(head);
     ;
 }

最后.因为是练习,所以也没想用多文件...呼..不过这样看起来确实很乱...O.O

链表(c语言实现)--------------小练习的更多相关文章

  1. 链表c语言实现

    链表(c语言实现)--------------小练习   #include <stdio.h> #include <stdlib.h> #include <string. ...

  2. Swift语言 1小时速学教程

    本文由 张渊杰 (网名寂静)编写 Swift语言 1小时速学教程 写在前面的话 有些人可能想, 呵呵, 1小时学一门语言, 你不是搞笑吧, 我想说, 是的, 完全可以, 就要看你怎么学了 要想在1小时 ...

  3. 嵌入式C语言优化小技巧

    嵌入式C语言优化小技巧 1 概述 嵌入式系统是指完成一种或几种特定功能的计算机系统,具有自动化程度高,响应速度快等优点,目前已广泛应用于消费电子,工业控制等领域.嵌入式系统受其使用的硬件以及运行环境的 ...

  4. 数据结构之链表C语言实现以及使用场景分析

    牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...

  5. 链表(C++语言实现)

    我使用的是严蔚敏的数据结构C语言版,很反感里面的全是伪代码,平常也没怎么敲代码,链表和顺序表是数据结构的第一个实验课程,顺序表还好,但是链表就有点困难了,因为里面涉及指针的运用.我对于指针并不是很精通 ...

  6. c语言的小问题

    在c语言编程中要注意一个小问题,如果你编写scanf("%d",&n);printf("%d",n)这个你输入几就输出几,毫无疑问.但是现在问题来了?如 ...

  7. 单链表 C语言 学习记录

    概念 链接方式存储 链接方式存储的线性表简称为链表(Linked List). 链表的具体存储表示为: 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的). 链表中 ...

  8. 企业链表C语言实现

    /* * LinkList.h * * Created on: 2019年7月20日 * Author: Administrator */ #ifndef SRC_LINKLIST_H_ #defin ...

  9. C语言—期末小黄衫获奖感言

    小黄衫获奖感言 一,感谢环节 非常感谢邹欣,周筠老师给提供的小黄衫,我非常荣幸的能够获得这个奖项,我感到无比自豪.感谢两位老师对教学事业的大力支持,对我们学生的亲切关怀.同时感谢我的C语言老师彭琛(琛 ...

随机推荐

  1. AsyncTask和Handler两种异步方式的实现和区别比较

    1  AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以 ...

  2. 禁用DropDownList的Items

    可以先看看效果,被禁用的DropDownList的Items已经无法选取与颜色也变为灰色. 刚开始,DropDownList没有接收从网址传来的参数时,它每一个Item都是可以选取的,一旦接收了值.所 ...

  3. R语言实战读书笔记2—创建数据集(上)

    第二章 创建数据集 2.1 数据集的概念 不同的行业对于数据集的行和列叫法不同.统计学家称它们为观测(observation)和变量(variable) ,数据库分析师则称其为记录(record)和字 ...

  4. 【转载】ITU-RBT.656视频标准接口

    ITU-RBT.656视频标准接口 ITU-RBT.656视频标准接口PAL制式(720*576)每场由四部分组成. ● 有效视频数据,分为奇场和偶场,均由288行组成.每行有1440个字节,其中72 ...

  5. urllib3 ConnectionPools

    A connection pool is a container for a collection of connections to a specific host.If you need to m ...

  6. 利用FormsAuthentication.RedirectFromLoginPage进行身份验证

    web.config中: <authentication>节 格式: <authentication mode="Forms">    //I.Window ...

  7. 用C语言实现的扑克牌洗牌程序

    一副牌:54张 从0开始排序: 0-12表示黑桃   A 1,2,3,... 10,J,Q,K 13-25表示红桃 A 1,2,3,... 10,J,Q,K 26-38表示草花 A 1,2,3,... ...

  8. EJB总结

    http://blog.sina.com.cn/s/blog_8ce4eca80101azdd.htmlEJB详解 http://blog.csdn.net/han_yankun2009/articl ...

  9. 问题:ldconfig

    显示加载库文件libjli.so时候出错. 解决办法 1.find / -name 'libjli.so'文件 路径在:/data0/home/app/act/jdk/jdk1.7.0_15/jre/ ...

  10. CSS中盒子模型和position(一)

    今天遇到几个css中的重要的知识点,记得这些都是以前看过的:margin.padding.border和position.可是用起来还是有很多的问题,以前自己看过去总是懒得记录,等到用起来了都不知道自 ...