#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. prettyprint

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. MVC 中使用log4net 打印重复日志解决方法

    最近在项目中引用log4net 来打印日志,会发现在同一时间点 打印重复记录: 详见图

  3. perl连接mysql(转载)

    文章来源:http://blog.sina.com.cn/s/blog_9d0445d50101czsr.html 首先需要用ppm安装DBI和DBD-mysql ,如果没有的话点击EDIT-pref ...

  4. Android编程: MVC模式、应用的生命周期

    学习内容:Android的应用剖析.MVC模式.应用的生命周期 ====Android的应用剖析==== 一个Android应用程序会使用如下组件: Android Activities   界面 A ...

  5. 自定义 tabBar (默认 tabBar 为可读不可写类型)

    KVC 方法 //由于 tabBar是只读 不能够直接操作,如果要修改  可以使用KVC let mainTabBar = MainTabBar() //KVC 赋值 setValue(mainTab ...

  6. 【Valid Palindrome】cpp

    题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...

  7. codeforces D. Queue 找规律+递推

    题目链接: http://codeforces.com/problemset/problem/353/D?mobile=true H. Queue time limit per test 1 seco ...

  8. web开发--文档下载

    GOOGLE在线文档下载地址分享(GOOGLE的文档地址暂不能用了,会放在其它位置..) GOOGLE的在线文档功能好象挂掉了...等找个其它存放的位置把这些文档再上传上去... 存在GOOGLE里面 ...

  9. memcached使用说明

    1.在服务器上注册服务 2.启动服务:services.msc       3.客户端创建服务接口 object Get(string key); List<string> GetKeys ...

  10. java加载机制整理

    本文是根据李刚的<疯狂讲义>作的笔记,程序有的地方做了修改,特别是路径,一直在混淆,浪费了好多时间!!希望懂的同学能够指导本人,感激尽............ 1.jvm 和 类的关系 当 ...