链表c语言实现
链表(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语言实现的更多相关文章
- 单链表 C语言 学习记录
概念 链接方式存储 链接方式存储的线性表简称为链表(Linked List). 链表的具体存储表示为: 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的). 链表中 ...
- C链表-C语言入门经典例题
struct student { long num; float score; struct student *next; }; 注意:只是定义了一个struct student类型,并未实际分配存储 ...
- 数据结构之链表C语言实现以及使用场景分析
牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...
- 链表(C++语言实现)
我使用的是严蔚敏的数据结构C语言版,很反感里面的全是伪代码,平常也没怎么敲代码,链表和顺序表是数据结构的第一个实验课程,顺序表还好,但是链表就有点困难了,因为里面涉及指针的运用.我对于指针并不是很精通 ...
- 数据结构-多级指针单链表(C语言)
偶尔看到大一时候写了一个多级链表,听起来好有趣,稍微整理一下. 稍微注意一下两点: 1.指针是一个地址,他自己也是有一个地址.一级指针(带一个*号)表示一级地址,他自身地址为二级地址.二级指针(带两个 ...
- 静态链表 C语言描述
静态链表1.下标为0的游标存放最后存放数据节点的游标,即是第一个没有存放元素(备用链表)的下标2.最后一个的节点存放第一个由数值得下标3.第一个和最后一个都不存放数据 即是备用链表的第一个的下标 4. ...
- (续)顺序表之单循环链表(C语言实现)
单循环链表和单链表的唯一区别在于单循环链表的最后一个节点的指针域指向第一个节点, 使得整个链表形成一个环. C实现代码如下: #include<stdio.h> typedef struc ...
- 静态链表C语言数据结构
静态链表就是将数组实现单链表: int Malloc_SLL(StaticLinkList space) { int i = space[0].cur;//取得第一个头节点的下标 if( space[ ...
- 约瑟夫环问题 --链表 C语言
总共有m个人在圆桌上,依次报名,数到第n个数的人退出圆桌,下一个由退出人下一个开始继续报名,循环直到最后一个停止将编号输出 #include <stdio.h>#include <s ...
随机推荐
- 微软将彻底改变Windows发布方式
看到网上的新闻信息: 微软上任 CEO 史蒂夫·鲍尔默在职最后一段时间引入了更快的产品公布周期.不再向从前那样,每隔几年公布一次重大产品升级,而是功能一旦开发完成就会推送升级. 显然,现任 CEO 纳 ...
- EF 增删改查 泛型方法、类
1.定义泛型类 namespace Crm.Data.Logic.Repository{ public abstract class AbstractRepository<TC, T> ...
- English is very important!
Well, as a college student,I haven't realized how important the English is . But as a web programmer ...
- POJ1201-Intervals(差动限制)
Intervals Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20786 Accepted: 7866 Descri ...
- 从头开始学JavaScript (九)——执行环境和作用域
原文:从头开始学JavaScript (九)--执行环境和作用域 一.执行环境:定义了变量或者函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有与之关联的变量对象. 变量对象:保存着环境中 ...
- 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨
原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...
- 【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注
原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo, ...
- Dialog中显示倒计时,到时自己主动关闭
这里直接用系统Dialog中加入了倒计时的显示,假设用自己定义Dialog会更美观: private TextView mOffTextView; private Handler mOffHandle ...
- 收集的VS2013的使用小技巧( 不断总结中)
对于经常使用vs的朋友,如果能用键盘直接做的事,还是键盘更便捷点,现在我就把自己遇到的一些给写下来. 1.对一个函数的说明 先写一个函数,以及参数,完成后,在函数上输入///,vs会自动补全说明的信息 ...
- 关于WIN32.EXE变态木马下载器的解决办法
一.WIN32.EXE的来源:http://fdghewrtewrtyrew.biz/adv/130/win32.exe 二.运行后的表现:此WIN32.EXE通过80和8080端口访问若干个IP,若 ...