链表(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. 深入理解ASP.NET MVC Day1

    深入理解ASP.NET MVC   ASP.NET vs MVC vs WebForms 许多ASP.NET开发人员开始接触MVC认为MVC与ASP.NET完全没有关系,是一个全新的Web开发,事实上 ...

  2. Tips & Tricks:Apache log4j简明教程(二)

    在上一讲Apache log4j简明教程(一)中介绍了log4j的基本概念,配置文件,以及将日志写入文件的方法,并给出了一个详细的示例.这一讲,我在继续谈一谈如何使用log4j将日志写入MySQL数据 ...

  3. 第15章 迭代器模式(Iterator Pattern)

    原文 第15章 迭代器模式(Iterator Pattern) 迭代器模式(Iterator Pattern)    概述: 在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构 ...

  4. 栈 <stack>

    STL: pop:完成的仅仅是移除最顶端的数据.如果访问最顶端的数据,需要使用top函数(这个操作通常也被称为peek). #include <stack> #include <cs ...

  5. find your present (2) 2095

    Problem Description In the new year party, everybody will get a "special present".Now it's ...

  6. VAXVOIP SDK Licensekey

    Insert the following key to the SDK with SetLicenseKey call: VAXVOIP.COM-191P238P55P253P97P229P51P76 ...

  7. 网页上弹出pop窗口实例,(document).height()与$(window).height()的区别

    #dvbg{background-color:#666666; position:absolute; z-index:99; left:0; top:0; display:none; width:10 ...

  8. Linux makefile 课程 非常具体的,和理解

    最近的一项研究Linux根据C计划,我买了一个电话<Linux环境C编程指南>阅读makefile这使他看起来困惑,我可能无法理解. 于是google到了下面这篇文章. 通俗易懂. 然后把 ...

  9. oracle_查询Oracle正在执行和执行过的SQL语句

    ---正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT  from v$session a, v$sqlarea b where a.s ...

  10. 【MySQL案件】mysql登录-S失败

    1.1.1. mysql登录mysql时间,-S参数失效 [环境的叙述性说明] mysql5.5.14 [问题叙述性说明] 配置多个实例 实例1 实例2 datadir /home/mysql_330 ...