- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
顺序表的类型说明和操作
;;2. 求表长 length_sqlist(l)
定义
求线性表的元素个数
基本思想
l.last 就表示了线性表的长度
算法
int length_sqlist(sqlist l)
{
return (l.last);
};3. 读表元 get_sqlist(l,i)
定义
求线性表 l 的第 i 个数据元素的值
基本思想
数组第i-1个单元就存放着线性表的第i个元素
算法
datatype get_sqlist(sqlist l ,int i )
{
return (l.data[i-1]);
};4. 定位 locate_sqlist(l,x)
定义
求线性表 l 中值等于 x 的结点序号的最小值,当不存在时结果为 0
基本思想
从前往后依次比较各结点值是否等于x
算法
int locate_sqlist(sqlist l, datatype x)
{ int i=0; /*从第一个开始查找*/
while ( (i=l.last-1) (l.data[i]!=x) )
i++; /*当前没有找到,继续试下一个*/
if (i=l.last-1) return(i+1);
/*在范围内,i+1为结果,注意C语言的数组是从0开始的*/
else return (0);
}
;5. 插入 insert_sqlist(l,x,i)
定义
线性表的插入操作是指在表的第i-1个数据元素和第i个数据元素之间插入一个新的 数据元素
(a1,…,ai-1,ai,…,an)
= (a1,…,ai-1,x,ai,…,an)
数据ai-1和ai之间的逻辑关系发生了变化
由于逻辑上相邻的数据元素在物理位置上也是相邻的,因此,除非i=n+1,否则必须移动元素才能反映这个逻辑关系的变化。; ;算法
void insert_sqlist(sqlist l,datatype x,int i)
{ int j;
if ( l.last==maxsize)
printf(“表满”); /*表容量已到最大值,无法插入*/
else if ( (il.last+1) || (i1) )
printf(“非法位置”); /*要求插入的位置不合法,无法插入*/
else
{for (j=l.last-1;j=i-1;j--) /*从最后一个元素到第i个元素*/
l.data[j+1]=l.data[j]; /*当前元素后移一位*/
l.data[i-1]=x; /*把x放入第i位*/
l.last++; /*表长加1*/
}
}
;6. 删除 delete_sqlist(l,i)
定义
线性表的删除操作是指将表的第i个数据元素删除,使长度为n的线性表:
(a1,…,ai-1,ai,ai+1,…,an)
变成长度为n-1的线性表
(a1,…,ai-1,ai+1,…,an)
数据元素ai-1、ai、ai+1之间的逻辑关系发生了变化,和插入操作一样同样需要移动数据元素,除非删除的是最后一个元素。; ;算法
void delete_sqlist(sqlist l, int i)
{int j;
if (l.last==0)
printf(“表空”); /*空表无法删除*/
else if ( (il.last) || (i1) )
printf(“非法位置”); /*位置不合法,无法删除*/
else
{for(j=i;j=l.last-1;j++)
/*从第i+1个元素到最后一个元素*/
l.data[j-1]=l.data[j]; /*当前元素前移一位*/
l.last--; /*表长减1*/
}
}
您可能关注的文档
- 英语小作文.考试作弊.ppt
- 若干现代生物科学的技术.ppt
- 英语应用文写作03.贺信和回复.ppt
- 英语单词记忆策略第1讲.ppt
- 英语教材-爱需要无私的付出.ppt
- 英语时态初3英语语法总复习.ppt
- 英语小笑话 外国电影中唯美句子.ppt
- 英语第1次月考复习.pptx
- 英语语音7-1-WordstressinEnglish.ppt
- 苹果电脑的教程文件的管理.ppt
- AX416、AX436、AX460、AX466、AX468型pH 氧化还原(ORP)用单 双输入分析仪用户指南(中文).pdf
- AC500可编程控制器(PLC)产品简介(中文).pdf
- LS产电MASTER K系列KGL for Windows用户手册(中文).pdf
- 山洋SANMOTION R系列交流伺服放大器样本手册(中文).pdf
- Hitachi WJ200系列日立变频器样本.pdf
- Hitachi SJ700系列日立变频器样本.pdf
- MACSTM系统主控单元.pdf
- ACS6000 中压变频器技术样本(中文).pdf
- Koyo 可编程显示设定单元CL 01DS用户手册(中文).pdf
- ABB MNS 2.0低压开关柜技术资料(中文).pdf
文档评论(0)