- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用顺序表对电视机进行出库入库操作(Use sequence table to send out and store the TV set)
用顺序表对电视机进行出库入库操作(Use sequence table to send out and store the TV set)
# stdio.h in
# stdlib.h in
# malloc.h in
# define ok 1
# define error 0
# define true 1
# define false 0
# define maxsize 此处的宏定义常量表示线性表可能达到的最大长度 100 / * * /
typedef struct stu
{
char type [20];
int num;
float price;
} elemtype;
typedef struct
{
elemtype el [maxsize); / * 线性表占用的数组空间 * /
int last; / * 记录线性表中最后一个元素在数组elem [] 中的位置 (下标值), 空表置为 - 1 * /
} seqlist;
int locate (seqlist l, int (e)
{
int i = 0; / * i为扫描计数器, 初值为0, 即从第一个元素开始比较 * /
while (( = l.last) (l.elem [i].num! = (e)) / * 顺序扫描表, 直到找到值为key的元素, 或扫描到表尾而没找到 * /
i + +;
if (i = l.last)
return (i + 1); / * 若找到值为e的元素, 则返回其序号 * /
elsa
return (- 1); / * 若没找到, 则返回空序号 * /
}
/ * 在顺序表l中第i个数据元素之前插入一个元素e. 插入前表长n = l - last + 1,
i的合法取值范围是 1≤i≤l - + 2 * /
int inslist (seqlist * l, int i, elemtype (e)
{
int k;
if (( 1) | | (i l - + 2) / * 首先判断插入位置是否合法 * /
{
printf (插入位置i值不合法);
return (error);
}
if (l - = maxsize - 1)
{
printf (表已满无法插入);
return (error);
}
for (k = l - last; = i - 1; - - 为插入元素而移动位置) / * * /
l - el [k + 1] = l - el [k];
l - el [i-1] = e; / * 在c语言数组中, 第i个元素的下标为i - 1 * /
l - + +;
return (ok);
}
int dellist (seqlist * l, int i, elemtype * (e)
/ * 在顺序表l中删除第i个数据元素, 并用指针参数e返回其值.i的合法取值为1≤i≤ l.last + 1 * /
{
int k;
if (( 1) | | (i l last + 1))
{
printf (删除位置不合法!) ;
return (error);
}
* (e = l - el [i-1]; / * 将删除的元素存放到e所指向的变量中 * /
for (k = i; k = l - last; k + +)
l - el [k-1] = l - el [k]; / * 将后面的元素依次前移 * /
l - last - -;
return (ok);
}
void input (seqlist * l)
{int r, i;
printf (请输入线性表的长度:);
scanf (% d, a r);
l - last = r - 1;
printf (请输入线性表的各元素值:);
for (i = 0; i = l - last; i + +)
{
printf (请输入第% d个电视机的型号:, i + 1);
scanf (% d l - el [i].type); getchar ();
printf (请输入第% d个电视机的数量:, i + 1);
scanf (% d l - el [i].num); getchar ();
printf (请输入第% d个电视机的价格:, i + 1);
scanf (% f, l - el [i].price); getchar ();
}
}
void output (seqlist l)
{int a; int n = l.last + 1;
/ / clrscr ();
printf (\ n * * * * * * * * * * * * * * *
您可能关注的文档
- 学医之脱口而出(Blurt out medicine).doc
- 学拼音兴趣(Learning Pinyin interest).doc
- 学会做人的重要性(Learn the importance of being human).doc
- 学日语的大量网站(A large number of websites learning Japanese).doc
- 学术链客观存在的学术关系形态(Academic chain an objective form of academic relation).doc
- 学校地面推广(School ground promotion).doc
- 学校应急疏散演练预案(School emergency evacuation training plan).doc
- 学校教学环境卫生监测与管理(Hygienic monitoring and management of school teaching environment).doc
- 学物理的方法(Methods of Physics).doc
- 学生与团队管理(Student and team management).doc
文档评论(0)