链表(c语言实现)--------------小练习

 
#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));
if (p->number == 0)
return head;
while (p->number != 0)
{
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);
return 0;
}

需要改进的还很多.

这仅仅是练习~~~~

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

小小的修改下...(其实就是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));
if (0 == p->number)
{
free(p);
return 0;
}
while (0 != 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);
return 0;
}

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

 
 

链表c语言实现的更多相关文章

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

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

  2. C链表-C语言入门经典例题

    struct student { long num; float score; struct student *next; }; 注意:只是定义了一个struct student类型,并未实际分配存储 ...

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

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

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

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

  5. 数据结构-多级指针单链表(C语言)

    偶尔看到大一时候写了一个多级链表,听起来好有趣,稍微整理一下. 稍微注意一下两点: 1.指针是一个地址,他自己也是有一个地址.一级指针(带一个*号)表示一级地址,他自身地址为二级地址.二级指针(带两个 ...

  6. 静态链表 C语言描述

    静态链表1.下标为0的游标存放最后存放数据节点的游标,即是第一个没有存放元素(备用链表)的下标2.最后一个的节点存放第一个由数值得下标3.第一个和最后一个都不存放数据 即是备用链表的第一个的下标 4. ...

  7. (续)顺序表之单循环链表(C语言实现)

    单循环链表和单链表的唯一区别在于单循环链表的最后一个节点的指针域指向第一个节点, 使得整个链表形成一个环. C实现代码如下: #include<stdio.h> typedef struc ...

  8. 静态链表C语言数据结构

    静态链表就是将数组实现单链表: int Malloc_SLL(StaticLinkList space) { int i = space[0].cur;//取得第一个头节点的下标 if( space[ ...

  9. 约瑟夫环问题 --链表 C语言

    总共有m个人在圆桌上,依次报名,数到第n个数的人退出圆桌,下一个由退出人下一个开始继续报名,循环直到最后一个停止将编号输出 #include <stdio.h>#include <s ...

随机推荐

  1. 使用 CodeIgniter 框架快速开发 PHP 应用(六)

    原文:使用 CodeIgniter 框架快速开发 PHP 应用(六) 简化使用 Session 和安全理论说得够多了! 现在让我们开始写我们自己的应用. 在这一章里,我们将会大致描述一下我们要建立的一 ...

  2. ASP.Net MVC 数据处理

    ASP.Net MVC 数据处理   第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验证等功能. ...

  3. oracle_修改Oracle数据库字符集 AL32UTF8;

    修改数据库字符集 以支持维文等  utf8 停掉库 进入装载模式 ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_ ...

  4. java web.xml listener servlet 和filter加载顺序

    在该项目中总会遇到一些关于加载的优先问题.最近遇到了同样的类别似的,所以,如果你发现信息汇总下,以下是转载其他一些人,毕竟,人们写的不错.它不重复创建的轮.只是略作修改自己的观点. 首先能够肯定的是, ...

  5. PHP进口Excel至MySQL方法

    PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader 注意点: reader.php 中的以下这行要改动  1.将 ...

  6. POJ 3176-Cow Bowling(DP||记忆化搜索)

    Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14210   Accepted: 9432 Desc ...

  7. 在 MVC6 中创建 Web API

    ASP.NET 5系列教程 (六): 在 MVC6 中创建 Web API   ASP.NET 5.0 的主要目标之一是统一MVC 和 Web API 框架应用. 接下来几篇文章中您会了解以下内容: ...

  8. DEDECMS织梦常用二开自定义标签

    网站名称:{dede:global.cfg_webname/} 网站根网址:{dede:global.cfg_basehost/} 网站根目录:{dede:global.cfg_cmsurl/} 网页 ...

  9. 把VBScript的函数迁移到C#.NET

    原文:把VBScript的函数迁移到C#.NET VBScript 5.6 Functions C# code Abs System.Math.Abs Array New Object() { } A ...

  10. [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

    原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ...