线性表的链式存储结构完整版-数据结构版

线性表的链式存储结构完整版-数据结构版

ID:16352317

大小:47.00 KB

页数:6页

时间:2018-08-09

线性表的链式存储结构完整版-数据结构版_第1页
线性表的链式存储结构完整版-数据结构版_第2页
线性表的链式存储结构完整版-数据结构版_第3页
线性表的链式存储结构完整版-数据结构版_第4页
线性表的链式存储结构完整版-数据结构版_第5页
资源描述:

《线性表的链式存储结构完整版-数据结构版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include"stdio.h"//standardinputoutput的缩写即标准输入输出,它封装了标准输入输出等一些常用函数#include"stdlib.h"//里面包含有一些通用的工具函数,此程序主要用到了它里面包含的system("cls"),system("cls")和exit()函数#include"string.h"//里面包含有一些常用的字符串函数,此程序主要用到了它里面包含的strcmp()和strcpy()函数typedefstructLNode{intID;//序号为

2、整型charname[20];//姓名为字符型数组charage[10];//年龄为字符型数组structLNode*next;//structLNode的直接后继指针}LNode,*LinkList;//LNode为结构体名,*LinkList为指针型结构体名intAgeJudge(charch1[10]){//输入的ch1必须为大于0的整数charch2[10];//定义ch2字符型数组存放一个整型数据inta;//用于保存ch1转换为整型的数据while(1){//无限循环使用户可以无限输

3、入直到输入正确scanf("%s",ch1);//输入ch1a=atoi(ch1);//将ch1转换为整型itoa(a,ch2,10);//将ch1转换为整型后的数据再存放到ch2当中if(strcmp(ch1,ch2)==0&&a>0){break;}//当输入的数据为大于0的整数时跳出死循环else{printf("请输入一个人大于0的整数:");}//输入数据有误}returna;//返回输入的大于0的整数}//AgeJudgevoidCreateList_L(LinkList&L,int

4、n){//顺位序输入n个元素的值,建立带表头节点的单链线性表Linti;//用作循环变量LinkListp,s,p1;//p为第一个节点的结构体指针,s为第一个以后节点的结构体指针,p1为临时结构体指针L=(LinkList)malloc(sizeof(LNode));//生成头结点if(!L){printf("空间申请失败!");}//生成头结点失败L->next=NULL;//先建立一个带头结点的空的单链表for(i=0;i

5、入第一组数据时p=(LinkList)malloc(sizeof(LNode));//生成新结点if(!p){printf("空间申请失败!");}//生成新结点失败printf("请输入第%d个人的姓名:",i+1);scanf("%s",p->name);//输入姓名printf("请输入第%d个人的年龄:",i+1);AgeJudge(p->age);L->next=p;p->next=NULL;//链到表头后面}else{//当输入非第一组数据时s=(LinkList)malloc(si

6、zeof(LNode));//生成新结点if(!s){printf("空间申请失败!");}//生成新结点失败printf("请输入第%d个人的姓名:",i+1);while(1){intflag=0;scanf("%s",s->name);//输入姓名p1=L->next;while(p1){if(strcmp(s->name,p1->name)==0)//线性表中已经存在目前输入的姓名{flag=1;break;}p1=p1->next;}if(flag==1){printf("此姓名已存在

7、,请重新输入:");//名字已存在,返回重新输入}if(flag==0){break;}//名字不存在,跳出死循环}printf("请输入第%d个人的年龄:",i+1);AgeJudge(s->age);//输入大于0的整数的年龄p->next=s;s->next=NULL;//将输入的数据链到目前已存在的数据后面,并使下一指针为空,为下一次输入做好准备p=p->next;//指针后移}}printf("信息录入完成!");//链表创建完成}//CreateList_LvoidPri

8、ntElem_L(LinkListL){//输出单链表中的数据LinkListp;inti=0;//计数器,计算链表中结构体数组数据的个数if(L->next==NULL){printf("tIt'sEmpty!");}//空链表else{//不为空链表p=L->next;//从头结点的下一个节点开始printf("t%-7s%-10s%-4s","序号","姓名","年龄");while(p){//当指针不为空i++;p->ID=i;//将计数器的值赋值给结构体中的序号prin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。