- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构报告1
数据结构 实验1
线性表
班级:.net124
学号:201207082438
姓名:刘团伟实验一 线性表
一、实验目的
了解线性表的基本操作。
二、实验内容
1. 请简述线性表的基本特性和线性表的几种基本操作的机制
①答:线性表的基本特性是:对线性表中某个元素ai来说,称其前面的元素ai-1为ai的直接前驱,称其后前面的元素ai+1为ai的直接后继。显然,线性表中每个元素最多有一个直接前驱和一个直接后继。
②答:线性表的几种基本操作的机制有六个:
(1)初始化线性表 initial_List(L)——建立线性表的初始结构,即建空表。这也是各种结构都可能要用的运算。
(2)求表长度 List_length(L)——即求表中的元素个数。
(3)按序号取元素 get_element(L,i)——取出表中序号为i的元素 。
(4)按值查询 List_locate(L,x)——取出指定值为x的元素,若存在该元素,则返回其地址;否则,返回一个能指示其不存在的地址值或标记。
(5)插入元素 List_insert(L,i,x)——在表L的第i个位置上插入值为x的元素。显然,若表中的元素个数为n,则插入序号i应满足1=i=n+1。
(6)删除元素 List_delete(L,i)——删除表L中序号为i的元素,显然,待删除元素的序号应满足1=i=n。
2.设计简单的程序实现单链表的几种基本操作,加注释!
#include stdio.h
#include stdlib.h
//using namespace std;
typedef int ElemType;
struct LNo //结构体
{
ElemType data;
LNode *next;
};
typedef LNode *LinkList;
void CreateList_L(LinkList L, int n) // 算法2.11
{
// 逆位序输入(随机产生)n个元素的值,建立带表头结点的单链线性表L
LinkList p;
int i;
L = (LinkList)malloc(sizeof(LNode));
L-next = NULL; // 先建立一个带头结点的单链表
for (i=n; i0; --i)
{
p = (LinkList)malloc(sizeof(LNode)); // 生成新结点
scanf(%d,p-data);
//p-data = rand()%200; // 改为一个随机生成的数字(200以内)
p-next = L-next;
L-next = p; // 插入到表头
}
}
int ListTraverse(LinkList L,void(*vi)(ElemType))
// vi的形参类型为ElemType,与bo2-1.cpp中相应函数的形参类型ElemType不同
{
// 初始条件:线性表L已存在
// 操作结果:依次对L的每个数据元素调用函数vi()。一旦vi()失败,则操作失败
LinkList p=L-next;
while(p)
{
vi(p-data);
p=p-next;
}
printf(\n);
return 1;
}
void visit(ElemType c)
{
printf(%d ,c);
}
int ListInsert(LinkList L,int i,ElemType e) // 算法2.9。不改变L
{
// 在带头结点的单链线性表L中第i个位置之前插入元素e
int j=0;
LinkList p=L,s;
while(pji-1) // 寻找第i-1个结点
{
p=p-next;
j++;
}
if(!p||ji-1) // i小于1或者大于表长
return -1;
s=(LinkList)malloc(sizeof(LNode)); // 生成新结点
s-data=e; // 插入L中
s-next=p-next;
p-next=s;
return 1;
}
int ListDelete(LinkList L,int i /*,ElemType e*/) // 算法2.10。不改变L
{
// 在带头结点
您可能关注的文档
- 挖掘QT的信号机制.doc
- 挑战杯精品项目--书吧方案下.doc
- 挖掘客户需求实战情景训练.ppt
- 捷达保养项目明细表.doc
- 掌握乒乓球拉球关键技术方法.ppt
- 排球比赛场地.doc
- 振动诊断的理论基础.ppt
- 探秘“玉兔”训练场.doc
- 探究中国现代散文的艰难萌生与崛起投稿半稿0306.doc
- 探究动能定理实验五.ppt
- 2025年8月 在全市防汛工作视频会议上的讲话.docx
- 在2025年市委常委班子集中整治问题整改工作专题会议上的讲话+党课:以过硬作风护航高质量发展以实干担当书写新时代“赶考”答卷.pdf
- 国有企业2025年在“贯彻党中央决策部署和国企改革要求方面、全面从严治党责任落实方面、基层党组织建设方面、巡察整改长效机制建设四个方面”巡察整改专题民主生活会存在的原因分析.docx
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.pdf
- 在理论学习中心组巡视整改专题学习研讨会议上的讲话+在省委巡视反馈问题整改部署会上的讲话+工作领导小组会议上的讲话.pdf
- 2篇 2025年在四届区委第十三轮巡察动员部署会议上的讲话.docx
- 2025年国企理论学习中心组巡视巡察专题民主生活会会前学习研讨+(2025年四个方面)巡察整改专题民主生活会个人发言提纲.docx
- 局党组、宣传部、纪委监委关于2025年上半年意识形态工作总结及2025年下半年工作打算.pdf
- 4篇 2025年在学习贯彻《中华人民共和国监察法实施条例》研讨交流会上的发言.pdf
- 在市委理论学习中心组中央城市工作会议精神专题学习研讨会上的发言.+关于传达中央城市工作会议精神的讲话提纲.docx
最近下载
- E+H恩德斯·豪斯 Liquicap M FTI52电容液位开关操作手册.pdf VIP
- CNAS产品质量手册.docx VIP
- 食品安全管理体系培训ppt课件.pptx VIP
- 串联质谱技术新生儿遗传代谢病筛查讲义.ppt
- 体例格式12:任务7教学单元7工学一体化课程《windows服务器基础配置与局域网组建》之教学单元活动方案.docx VIP
- 2016年会计培训课件-《增值税会计处理规定》财会[2016]22号.ppt VIP
- 15MR201 城市道路-沥青路面 .docx VIP
- SHS 01030—2019 阀门维护检修规程.docx VIP
- 第10课 当代中国的法治与精神文明建设 教学课件(共29张PPT)——高中历史人教统编版选择性必修一.pptx VIP
- CJJ 143-2010 埋地塑料排水管道工程技术规范.docx VIP
文档评论(0)