#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. 安装SRILM

    参考博文:Ubuntu 64位系统下SRILM的配置详解 来源52nlp www.52nlp.cn 首先下载SRILM 解压缩到home即可 然后需要修改MakeFile文件: # SRILM = / ...

  2. SegmentFault 2014黑客马拉松 北京 作品demo

    1号作品展示——最熟悉的陌生人 app 利用录音(声纹识别)和照片来让好久不见的见面变得不那么尴尬. 2号作品展示——神奇魔镜 app 灵感来自通话<白雪公主>,穿越到今天的“魔镜”功能依 ...

  3. 【ExtJs】使用Cookie、切换主题和语言

    转自:http://witmax.cn/extjs-cookie-theme-lang.html 使用Cookie:   1 2 3 Ext.state.Manager.setProvider(new ...

  4. R统计图

    主题:R统计图 作者:luomg 关键字:统计,R,ggplot2 1.什么是统计图? 统计图:统计图是从数据到几何对象的图形属性的一个映射 砖石重量对价格的散点图 qplot(carat,price ...

  5. win7无线网卡的灯突然不亮了的解决办法

    win7无线网卡的灯突然不亮了,百度了一下,按如下的方法解决了:  WIN7中:右键单击“计算机”,选择“管理”进入“计算机管理”,选择“服务和运用”下的“服务”,然后双击“WLAN AutoConf ...

  6. 关于VS2010error RC2170 : bitmap file res\tmp1.bmp is not in 3.00 format

      我们有时候向VS中的程序插入图片,会出现如下错误: 这是VS的一个bug,对于不能识别的资源,添加的时候,VS会弹出一个对话框让你填类型,这个类型其实是字符串表示,而不是像内置类型,例如整数. 解 ...

  7. MATLAB连通域标记函数

    L = bwlabel(BW,n)返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1.2.num(连通区域的个数).n的值为4或8,表示是按4连通寻找区域,还是 ...

  8. VRP-Lua学习笔记

    至于vrp是什么东西以及为什么要学习vrp,vrp的简单操作这些问题请自行右转抵拢倒拐找百度或者去中视典官网去找教程,我这里不会在赘述. 今天默认我们已经会使用VRP的脚本编辑器,用其他语言来为VRP ...

  9. SQL Server 2008 没有可用于 charge_sys_Log.LDF 的编辑器

    因为上网问题重新装了系统.今天在整 SQL Server  的时候出现了这样一个问题. 因为之前装 SQL Server  的时候没有遇到过这种情况,感觉很新奇.所以详细的记录一下,希望对别人能有一定 ...

  10. (转)c语言学习volatile

    原文网址:http://www.cnblogs.com/chio/archive/2007/11/24/970632.html 参考网址:http://www.embedu.org/Column/Co ...