#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. "Programming"和"Programming"是同一个"Programming"吗?

    什么意思? C语言没有专门的字符串类型,但是,它同样可以处理字符串.本文不是讨论字符串的使用,而是讨论C字符串之间的关系.如题,在C语言代码中,如果定义#define STR = "Prog ...

  2. Mybatis 实现手机管理系统的持久化数据访问层

    最近公司需要对客户手机进行管理并提供二维码存储手机串号的加密字符.供其他接入系统通过扫面二维码解析使用.系统提供手机信息管理,客户管理,用户管理功能. 1.使用到的POJO类 1.1 User pac ...

  3. java 单例模式总结

    单例模式的实现方式总结: 第一种方式:同步获取实例的方法,多线程安全,懒汉模式.在调用实例的时刻初始化. public class Singleton1 { private static Single ...

  4. oracle DML错误日志(笔记)

    DML错误日志是oracle10gR2引入的一个类似于SQL*Loader的错误日志功能.它的基本原理是把任何可能导致语句失败的记录转移,放到一张错误日志表中. 具体使用如下: 1.使用DBMS_ER ...

  5. 将meteor部署在自己服务器上的简易方法

    有meteor-up等众多工具,如果你不喜欢它们,可以尝试如下方法,自由控制. 1,创建及打包项目 meteor create newapp meteor build . 2,上传 将bunder.t ...

  6. iOS中MVC设计模式

    在组织大型项目的代码文件时,我们常用MVC的思想.MVC的概念讲起来非常简单,就和对象(object)一样.但是理解和应用起来却非常困难.今天我们就简单总结一下MVC设计理念. MVC(Model V ...

  7. iis7应用程序池自动关闭问题解决

    解决: 应用程序池启动32位应用程序 设置托管管道为集成 (仍然有问题) 图片:123.png 访问网站之前 应用程序池是开启的 访问后 网页报503 service unavailable应用程序池 ...

  8. MVC返回图片

    这几天忙着一些小事,也没有写什么了,今天,我们来玩一个比较简单的东东.就是在MVC下如何返回图片,相信,在传统WebForm下,大家都晓得怎么弄,方也不限于一种,但是,在架构较为严格的MVC里面,刚开 ...

  9. php对象

    在php中,必须使用class关键字明确的声明对象,然后在对象类中定义数据类型和方法. 示例: class Color{ public $value; public static $RED = &qu ...

  10. sublime mac快捷键

    ^是control ⌥是option 打开/前往 ⌘T 前往文件 ⌘⌃P 前往项目 ⌘R 前往 method ⌘⇧P 命令提示 ⌃G 前往行 ⌘KB 开关侧栏 ⌃ ` python 控制台 ⌘⇧N 新 ...