- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
顺序表的基本操作
***********************************
实验题目 :顺序表的基本操作
班 级 :
姓 名:
学 号:
专 业:
实验完成的时间:
*********************************
实验目的
掌握顺序表的基本运算,熟悉对顺序表的一些基本操作和具体函数的定义。
掌握顺序表的存储结构及其基本操作。
熟悉c语言程序的基本结构,掌握函数定义、调用等功能。
熟悉c语言环境的使用及程序的输入、编辑、调试和运行的全过程。
二、实验要求
熟练掌握线性表的存储结构及其基本操作。
理解所给出的算法,掌握顺序表在实际中的应用。
将上机程序调试通过,并能独立完成一至两个拓展题目。
三、实验内容
实现顺序表上的插入、删除等操作。调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。加深对有关算法的理解。
(1)主要内容:
#define MAXSIZE 100 /*宏定义*/
//#define OVERFLOW -2
#include stdio.h /*包含输入输出文件*/
typedef int data;
typedef struct /*定义顺序表的结构*/
{data vec[MAXSIZE]; /*顺序表数据成员所占据的存储空间*/
int last; /*顺序表中最后一个元素在数组中的下标(或向量中的位置)从0开始*/
}sequenlist;
int insert(L,i,x) /*在顺序表的第i个元素之前插入一个新元素x*/
sequenlist *L;
int i;
data x;
{ int j;
if(((*L).last)=MAXSIZE-1)
{printf(the list is overflow!\n);
return(0); /*溢出判断*/
}
else
if((i1)||(i(*L).last+1))
{printf(position is not correct!\n);
return(0); /*插入位置不正确*/
}
else
{for(j=(*L).last;j=i-1;j--) /*后移元素*/
(*L).vec[j+1]=(*L).vec[j];
(*L).vec[i-1]=x; /*插入新元素*/
(*L).last=(*L).last+1;/*修改last的值*/
}
return(1);
}
void DELETET(L,i)
sequenlist *L;
int i;
{
int j;
if(i1||(iL-last+2))
printf(删除的位置错误\n);
else
{
for(j=i;j=(*L).last;j++)
(*L).vec[j-1]=(*L).vec[j];
(*L).last--;
}
}
void listprint(sequenlist *L) /*输出线性表*/
{
int i;
for(i=0;i=(*L).last;i++)
printf(i,e=%d,%d\n,i,L-vec[i]);
}
main()
{
sequenlist sl={{1,2,3,4,5,6,7,8,9,10},9};//直接给顺序表赋初值
sequenlist *L;/*定义一个指向顺序表类型的指针变量*/
int i,j,x;
//elemtype e;
L=sl; /*给指针变量赋值*/
printf(请输入你插入的位置和数\n);
scanf(%d,%d,i,x);
printf(这个插入的位置: %d \n插入的数:%d\n,i,x);
insert(L,i,x);
listprint(L);
printf(请输入删除的位置:);
scanf(%d,j);
DELETET(L,j);
listprint(L);
}
(2)预习思考题
定义一个定位函数locate(L,x),具有元素检索的功能。当顺序表中存在一个值为x的数据元素时,返回第一次找到的数据元素的位序,否则,给出一个值,表示值为x的元素不存在。在主程序中调用该函数,分析操作结果。
算法如下
int locat(L,x) /* x由主函数输入并接受locat的返回值 */
sequenlist *L;
int x;
{
int
您可能关注的文档
最近下载
- 高档牛肉生产技术精品.ppt VIP
- 2025年最新人教版七年级(初一)数学上册教学计划及进度表(新课标,新教材).docx
- 执法办案管理中心信息化建设方案(纯方案,117页) .pdf VIP
- 2024江苏省农村信用社联合社招聘科技类(本)10人笔试历年典型考题及考点剖析附带答案详解.docx VIP
- 标准图集-15J403-1 楼梯 栏杆 栏板(一).pdf VIP
- 戚墅堰区幼儿园膳食营养调查分析.doc VIP
- 骨科三基三严考试题.docx VIP
- SY∕T 6662.8-2016 石油天然气工业用非金属复合管 第8部分:陶瓷内衬管及管件.pdf
- 桥面挡砟墙施工方案.pdf VIP
- 复方鼻炎膏说明书.docx VIP
文档评论(0)