- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验一实验报告
实验1 线性表应用
实验目的
熟悉C/C++语言的上机环境,掌握C/C++语言的基本结构。
定义单链表的结点类型。
熟悉对单链表的一些基本操作和具体的函数定义。
通过单链表的定义掌握线性表的链式存储结构的特点。
熟悉对单链表的一些其它操作
实验内容
1. 实现单链表的定义和操作。该程序包括单链表结构类型以及对单链表操作的具体的函数定义
程序中的单链表(带头结点)结点为结构类型,结点值为整型。
3. 试单链表实现一个简单的电子通讯本管理软件,要求能查找联系地址,增加和删除联系人。联系方式假定包括姓名、电话和地址。
实验代码
1.
#includestdio.h
#includeconio.h
#includestdlib.h
//预处理命令
#define OK 1;
#define ERROR 0;
#define OVERFLOW -1;
//定义DataType status为int类型
typedef int DataType;
typedef int status;
//定义单链表的结点类型
typedef struct LNode
{
DataType data;
struct LNode *next;
}LNode,*LinkedList;
//初始化单链表
LinkedList LinkedListInit()
{
LinkedList L;
L=(LinkedList)malloc(sizeof(LNode));
L-next=NULL;
return L;
}
//向单链表中插入元素
status LinkedListInsert(LinkedList L,int i,DataType x)
{
// 在链表中第i个结点之前插入新的元素 x
LinkedList s=(LinkedList)malloc(sizeof(LNode));
s-data=x;
LinkedList p=L-next,q;
if (i==1)
{
if (p==NULL)
{
L-next=s;
s-next=NULL;
return OK;
}
else
{
L-next=s;
s-next=p;
return OK;
}
}
int j=1;
while(ji-1p)
{
p=p-next;
j++;
}
if (!p)
{
free(s);
return ERROR;
}
q=p-next;
p-next=s;
s-next=q;
return OK;
}
//从单链表中删除值为x的结点
status LinkedListDel(LinkedList L,DataType x)
{
LinkedList p=L-next,q=L;
while(p!(p-data==x))
{
q=p;
p=p-next;
}
if (!p)
return ERROR;
q-next=p-next;
free(p);
return OK;
}
//主函数
int main()
{ //初始化单链表
int i=1;
LinkedList L=LinkedListInit();
if (L) printf(初始化成功!\n);
//插入
printf(请输入要插入的值:);
DataType x;
scanf(%d,x);
printf(请输入要插入的位置:);
int k;
scanf(%d,k);
if(LinkedListInsert(L,k,x))
printf(插入成功。\n);
else printf(插入失败。\n);
//删除
printf(请输入要删除的元素:);
DataType y;
scanf(%d,y);
if (LinkedListDel(L,y))
printf(y被删除。\n);
else printf(删除失败。\n);
return 0;
}
3.
自然语言:
定义单链表 实现链表初始化 编写向链表插入元素的函数 编写删除数据的函数 主函数,其中调用插入和删除的函数
伪码语言:
//定义单链表的结点类型
typedef struct LNode
{
DataType name[50];
DataType address[50];
long int tel;
struct LNode *next;
}LNode,*LinkedList;
//初始化单链表
LinkedList LinkedListInit()
{
LinkedList L;
L=(Linke
您可能关注的文档
最近下载
- 附件视频监控存储升级项目要求及参数.doc VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时2课件 2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 2025年安全金融知识题库及答案.docx VIP
- 施工方案管理培训课件.docx VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时1课件2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 全新IMPA船舶物料指南(第7版)电子版.xls VIP
- 东方财富杯金融安全知识题库.docx VIP
- 2025年最新详版征信报告个人信用报告样板模板word格式新版可编辑.docx
- 孙氏太极拳(孙禄堂原著孙剑云整理).pdf VIP
- 车辆抵押借款合同范本协议(2025版).docx VIP
文档评论(0)