- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word
word
PAGE / NUMPAGES
word
实验一 线性表的实验
一、实验目的与要求
1、掌握用Visual C++6.0调试顺序表的根本方法。
2、掌握顺序表的根本操作,插入、删除、查找、以与有序顺序表的合并等算法的实现。
3、掌握用Visual C++6.0上机调试单链表的根本方法。
4、掌握单链表的插入、删除、查找、求表长以与有序单链表的合并算法的实现。
5、进一步掌握循环单链表的插入、删除、查找算法的实现。
二、实验学时
4学时
实验任务
任务一:用顺序表实现通讯录管理
构建通讯录的顺序表并输出检验。
增加插入记录的功能并输出检验。
3、增加按学号查找的功能并运行验证。
4、增加删除记录的功能并运行验证。
任务二:用链表实现通讯录管理
1、构建通讯录的链表并输出检验
2、增加插入记录的功能并输出检验。
3、增加按学号查找的功能并运行验证。
4、增加删除记录的功能并运行验证。
四、实验重点、难点
在顺序表中移动元素。
在顺序表中找到正确的插入位置。
在单链表中寻找到第i-1个结点并用指针p指示。
比拟两个单链表的节点数据大小。
五、操作内容与要求
任务一:用顺序表实现通讯录管理
构建如表1所示的顺序表并输出检验,实现表1。
增加插入记录的功能并输出检验,实现表2。
增加按学号查找的功能并运行验证。
增加删除记录的功能并运行验证。
表1
学号
某某
性别
手机
号
2013001
X珊
女
34578
表2
2013002
李思
女
8796532
2013003
陈琪
女
3789123
2013004
王强
男
6543783
2013005
赵括
男
5679
2013006
X刚
男
98315
注意:用结构化程序设计的方法实现即〔其中的〕把单一功能设计成一个独立的函数。如构建顺序表设计成一个函数,同样插入、查找、删除、输出也设计成独立的函数。
任务二:用链表实现通讯录管理
1、构建通讯录的链表并输出检验,实现表1。
2、增加插入记录的功能并输出检验,实现表2。
3、增加按学号查找的功能并运行验证。
4、增加删除记录的功能并运行验证。
实验解答参考:
要完成此功能,先要考虑数据类型,再给出构建顺序表的函数与输出的函数,然后可以写出主函数了。
参考代码如下:
#includestdio.h
#includestdlib.h
#includestring.h
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{
char xuehao[14];//学号
char name[20]; //某某
int sex; //性别
char tel[14]; //联系
char [12]; // 号
}ElemType;
typedef struct{
ElemType *elem;//顺序表的存储空间基址,相当于一个一维的数组名
int length;//表的实际元素个数,即表的长度
int listsize;//最大可存储的元素个数,表的长度的上限
}SqList;
void InitSeqList(SqList L)
{
char flag;
int i,n;
ElemType *p;
L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
L.length=0;
L.listsize=LIST_INIT_SIZE;
printf(是否输入初始数据?〔Y/N〕);
scanf(%c,flag);
if(flag==N||flag==n) return;
printf(请输入初始化数据的个数:);
scanf(%d,n);
if(nL.listsize) {printf(数据太多,不足以存储!);return;}
p=L.elem;
L.length=n;
for(i=0;in;i++)
{
printf(请输入第%d个数据(学号 某某 性别〔0或1〕 联系 号):\n,i+1);
scanf(%s%s%d%s%s,p-xuehao,p-name,p-sex,p-tel,p- );
p++;
}
return;
}
void PrintSeqList(SqList L)
{
int i;
printf(学号 某某 性别 联系 号\n);
for(i=0;iL.length;i++)
{
printf(%-14s%-14s,L.elem[i].xuehao,L.elem[i].name);
if(L
您可能关注的文档
- 垂直运输设备布置方案设计.doc
- 词类活用练习题40题.doc
- 磁粉检测作业指导书.doc
- 磁共振上岗证历年考试真题(绝对值得).doc
- 催化裂化装置防止结焦导则.doc
- 村级治理机制有关工作内容.doc
- 存货计价方法比较.doc
- 达内Java1605班第二次月考.doc
- 达能在线测评问题详解.doc
- 达陕高速公路t梁预制施工组织设计.doc
- 全国青少年(毒品预防教育)知识考试题库与答案 .pdf
- 2023年山东胶州市领军计划自主招生历史试题真题(含答案详解) .pdf
- 【人教版八年级生物】第六单元 第二章 认识生物的多样性 .pdf
- 冀人版-第三单元 电(提升卷)-四年级科学上册单元培优进阶练.docx
- 新郑市事业单位统考真题 .pdf
- 冀人版-第三单元动物的生长与繁殖(单元测试)四年级下册科学.docx
- CLCN4基因变异相关癫痫的临床表型及基因变异特点 .pdf
- 【《“双减”背景下小学中年级语文自主阅读策略探究》6500字】 .pdf
- 高一语文开学第一课+课件+2024-2025学年统编版高中语文必修上册 .pdf
- 密山市事业单位统考真题 .pdf
文档评论(0)