顺序线性表的建立及其基本操作的实现_第1页
顺序线性表的建立及其基本操作的实现_第2页
顺序线性表的建立及其基本操作的实现_第3页
顺序线性表的建立及其基本操作的实现_第4页
顺序线性表的建立及其基本操作的实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include "stdio.h"#define ok 1#define error 0#define maxsize 20/* 定义数据元素类型*/ typedef structint no;int grade;elemtype;/* 定义次序线性表*/ typedef structelemtype elemmaxsize; int length;sqlist;/* 初始化线性表 */ void initlistsqlist *plpl->length=0;/* 建立(输入)线性表*/ void creatlistsqlist *plint i;printf&qu

2、ot;n预备建立线性表,请输入线性表的长度:" scanf"%d",&pl->length;fori=0;i<=pl->length-1;i+printf" 数据 %d=",i+1;scanf"%d,%d",&pl->elemi.no,&pl->elemi.grade;printf"n"/* 显示线性表 */void showlistsqlist plint i; fori=0;i<pl.length;i+printf"%d,%d&qu

3、ot;,pl.elemi.no,pl.elemi.grade;printf"n"/* 插入元素 */int listinsertsqlist *pl,elemtype eint i,j;if pl->length>=maxsize return error;/* 找插入点的位置*/ fori=0;i<pl->length;i+if e.grade>pl->elemi.grade break;/* 向 后 移 动 数 据 */ forj=pl->length+1;j>i;j- pl->elemj=pl->elemj-

4、1; pl->elemi=e;pl->length=pl->length+1; return ok;/* 合并两个有序表*/void mergelistsqlist la,sqlist lb,sqlist *lcint i;for i=0;i<la.length;i+lc->elemi.no=la.elemi.no;lc->elemi.grade=la.elemi.grade;for i=0;i<lb.length;i+lc->elemi+la.length.no=lb.elemi.no;lc->elemi+la.length.grade=

5、lb.elemi.grade;lc->length=la.length+lb.length;/* 求平均分 */void averagelistsqlist lcint i; float s;printf" 平均分 :n"s=0;fori=0;i<lc.length;i+ s=s+lc.elemi.grade;printf"s=%f",s/lc.length;/* 删除元素 */void deletelistsqlist *lc,int nint i,j;fori=0;i<lc->length;i+ if lc->elemi

6、.no=n printf"n"printf"%d ",lc->elemi.no;printf"%d ",lc->elemi.grade; printf"n"break;forj=i;j<lc->length;j+lc->elemj.no=lc->elemj+1.no;lc->elemj.grade=lc->elemj+1.grade;lc->length-;/* 查找元素 */void loclistsqlist lcint i,key;printf"

7、 请输入要查找同学的学号:" scanf"%d",&key; fori=0;i<lc.length;i+if lc.elemi.no=key printf" 查找胜利 ,在第 %d 位置找到该同学:",i+1;printf" 学号: %d ",lc.elemi.no;printf" 成果: %d ",lc.elemi.grade; printf"n"break;if i=lc.length printf"查找不胜利 n"/* 主函数 */ mainin

8、t n; sqlist la,lb,lc; elemtype e; creatlist&la;printf" 第一个线性表a:n"showlistla; creatlist&lb;printf" 其次个线性表b:n"showlistlb; e.no=4;e.grade=65;listinsert&la,e; e.no=5;e.grade=70; listinsert&la,e; e.no=6;e.grade=86; listinsert&la,e;printf" 插入数据后的线性表a:n"showlistla; mergelistla,lb,&lc; print

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论