ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:548.19KB ,
资源ID:17269571      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17269571.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程作业编程数据库查找及修改.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程作业编程数据库查找及修改.docx

1、软件工程作业编程数据库查找及修改软件工程基础实训报告田军营 仲志丹河南科技大学机电工程学院线性表的基本运算班级: 机制091班 姓名: 陈军印 实训成绩:批改教师签名: 一、实训学时:2学时二、实训目的:理解线性表的概念,掌握线性表的存储方法以及建立在该存储方法上的各种线性表算法,并用C/C+调试实现。三、实训原理:线性表是一种数据结构,它有多种存储方法,不同存储方法对应的线性表算法都有着相同的功能和不同的实现。学生实验时,线性表的存储结构可以通过数组和链表来实现,而线性表的各种算法则就是为实现相同功能而进行的数组或链表操作。四、实训设备:一台可以建立C/C+语言程序调试环境的个人计算机。五、

2、主要实训内容及编程:、线性表的各种存储结构的实训(用C/C+语言描述,用实训过程中的实训内容填写,实训过程中检查)。#include #include #define ListSize 20/List structuretypedef int DataType; /DataType的类型可根据实际情况而定,这里假设为inttypedef structDataType dataListSize; /向量data用于存放表结点 int length; /当前的表长度seqList;/menuvoid menu()printf(nCreate and Init a list: - 1n);print

3、f(Get the length: - 2n);printf(Get the ith node: - 3n);printf(Find the node =x: - 4n);printf(Insert the node x: - 5n);printf(Delete the node x: - 6n);printf(Your choice is: ); /Create and init a listseqList* Init_seqlist()/ int num;int i=0;seqList *list;list=(seqList *)malloc(sizeof(seqList); /从键盘输入

4、/*printf(please input the seq number:);scanf(%d,&num);while(num!=-1)list-datai+=num; scanf(%d,&num);list-datai=-1;list-length=-i;*/默认值for(i=0;idatai=i*10;list-datai=-1;list-length=i;return list; /output the listvoid output_seqlist(seqList *list)int i=0;printf(The sequence is: );while(list-datai!=-1)

5、printf(%d ,list-datai+);printf(n);/get length of the listint length_seqlist(seqList *list)return list-length;/get the node of i in the list void getnode_seqlist(seqList *list)int i;printf(i=);scanf(%d,&i);printf(list-data%d = %d n,i,list-datai);/find node in the listvoid findnode_seqlist(seqList *li

6、st)int found=0,i=0,x;printf(x=);scanf(%d,&x);while(list-datai!=-1) if(list-datai+=x)found=1; break; if(!found)printf(Not found!n); else printf(Found! i= %d n,-i);/insert a node into the listvoid insert_seqlist(seqList *list)int i,x;printf(insert x= );scanf(%d,&x);list-datalist-length+1=-1;for(i=list

7、-length-1;i=0;i-) if(xdatai)list-datai+1=list-datai; else list-datai+1=x; break; list-length+;/delete a node of the listvoid delete_seqlist(seqList *list)int x,i=0;printf(delete x=);scanf(%d,&x);while(list-datai!=x)if(i=list-length) printf(no such node = %d in the sequence!n,x); return; i+;if(list-d

8、atai=x)for(i;ilength;i+)list-datai=list-datai+1; list-length-;void main()int n;seqList *list;menu();while(1)printf(Your choice is: ); scanf(%d,&n); switch(n)case 1:list=Init_seqlist(); output_seqlist(list); break; case 2:printf(the length of list is %dn,length_seqlist(list); break; case 3:getnode_se

9、qlist(list); break; case 4:findnode_seqlist(list); break; case 5:insert_seqlist(list); output_seqlist(list); break; case 6:delete_seqlist(list); output_seqlist(list); break; 程序运行结果为:2、基于某种线性表存储结构给出线形表操作的各种算法实训(用C/C+语言描述,用实训过程中的实训内容填写,实训过程中检查检查)。#include #include typedef int elemType;/*/* 以下是关于线性表顺序存

10、储操作的16种算法 */*/struct List elemType *list; int size; int maxSize;void againMalloc(struct List *L) /* 空间扩展为原来的2倍,并由p指针所指向,原内容被自动拷贝到p所指向的存储空间 */ elemType *p = (elemType *)realloc(L-list, 2 * L-maxSize * sizeof(elemType); if(!p) /* 分配失败则退出运行 */ printf(存储空间分配失败! ); exit(1); L-list = p; /* 使list指向新线性表空间 *

11、/ L-maxSize = 2 * L-maxSize; /* 把线性表空间大小修改为新的长度 */* 1.初始化线性表L,即进行动态存储空间分配并置L为一个空表 */void initList(struct List *L, int ms) /* 检查ms是否有效,若无效的则退出运行 */ if(ms maxSize = ms; /* 设置线性表空间大小为ms */ L-size = 0; L-list = (elemType *)malloc(ms * sizeof(elemType); if(!L-list) printf(空间分配失败! ); exit(1); return;/* 2.

12、清除线性表L中的所有元素,释放存储空间,使之成为一个空表 */void clearList(struct List *L) if(L-list != NULL) free(L-list); L-list = 0; L-size = L-maxSize = 0; return;/* 3.返回线性表L当前的长度,若L为空则返回 */int sizeList(struct List *L) return L-size;/* 4.判断线性表L是否为空,若为空则返回1, 否则返回0 */int emptyList(struct List *L) if(L-size =0) return 1; else

13、return 0; /* 5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行 */elemType getElem(struct List *L, int pos) if(pos L-size) /* 若pos越界则退出运行 */ printf(元素序号越界! ); exit(1); return L-listpos - 1; /* 返回线性表中序号为pos值的元素值 */* 6.顺序扫描(即遍历)输出线性表L中的每个元素 */void traverseList(struct List *L) int i; for(i = 0; i size; i+) printf(%d

14、, L -listi); printf( ); return;/* 7.从线性表L中查找值与x相等的元素,若查找成功则返回其位置,否则返回-1 */int findList(struct List *L, elemType x) int i; for(i = 0; i size; i+) if(L-listi = x) return i; return -1;/* 8.把线性表L中第pos个元素的值修改为x的值,若修改成功返回1,否则返回0 */int updatePosList(struct List *L, int pos, elemType x) if(pos L-size) /* 若p

15、os越界则修改失败 */ return 0; L-listpos - 1 = x; return 1;/* 9.向线性表L的表头插入元素x */void inserFirstList(struct List *L, elemType x) int i; if(L-size = L-maxSize) againMalloc(L); for(i = L-size - 1; i = 0; i-) L-listi + 1 = L -listi; L-list0 = x; L-size +; return;/* 10.向线性表L的表尾插入元素x */void insertLastList(struct

16、List *L, elemType x) if(L-size = L -maxSize) /* 重新分配更大的存储空间 */ againMalloc(L); L-listL-size = x; /* 把x插入到表尾 */ L-size+; /* 线性表的长度增加 */ return;/* 11.向线性表L中第pos个元素位置插入元素x,若插入成功返回,否则返回 */int insertPosList(struct List *L, int pos, elemType x) int i; if(pos L-size + 1) /* 若pos越界则插入失败 */ return 0; if(L-si

17、ze = L-maxSize) /* 重新分配更大的存储空间 */ againMalloc(L); for(i = L-size - 1; i = pos - 1; i-) L-listi + 1 = L-listi; L-listpos - 1 = x; L-size+; return 1;/* 12.向有序线性表L中插入元素x,使得插入后仍然有序*/void insertOrderList(struct List *L, elemType x) int i, j; /* 若数组空间用完则重新分配更大的存储空间 */ if(L-size = L-maxSize) againMalloc(L)

18、; /* 顺序查找出x的插入位置 */ for(i = 0; i size; i+) if(x listi) break; /* 从表尾到下标i元素依次后移一个位置, 把i的位置空出来 */ for(j = L-size - 1; j = i; j-) L-listj+1 = L-listj; /* 把x值赋给下标为i的元素 */ L-listi = x; /* 线性表长度增加1 */ L-size+; return;/* 13.从线性表L中删除表头元素并返回它,若删除失败则停止程序运行 */elemType deleteFirstList(struct List *L) elemType t

19、emp; int i; if(L -size = 0) printf(线性表为空,不能进行删除操作! ); exit(1); temp = L-list0; for(i = 1; i size; i+) L-listi-1 = L-listi; L-size-; return temp;/* 14.从线性表L中删除表尾元素并返回它,若删除失败则停止程序运行 */elemType deleteLastList(struct List *L) if(L -size = 0) printf(线性表为空,不能进行删除操作! ); exit(1); L-size-; return L -listL-si

20、ze; /* 返回原来表尾元素的值 */* 15.从线性表L中删除第pos个元素并返回它,若删除失败则停止程序运行 */elemType deletePosList(struct List *L, int pos) elemType temp; int i; if(pos L-size) /* pos越界则删除失败 */ printf(pos值越界,不能进行删除操作! ); exit(1); temp = L-listpos-1; for(i = pos; i size; i+) L-listi-1 = L-listi; L-size-; return temp;/* 16.从线性表L中删除值

21、为x的第一个元素,若成功返回1,失败返回0 */int deleteValueList(struct List *L, elemType x) int i, j; /* 从线性表中顺序查找出值为x的第一个元素 */ for(i = 0; i size; i+) if(L-listi = x) break; /* 若查找失败,表明不存在值为x的元素,返回0 */ if(i = L-size) return 0; /* 删除值为x的元素L-listi */ for(j = i + 1; j size; j+) L-listj-1 = L-listj; L-size-; return 1;/*/in

22、t main() int a10 = 2, 4, 6, 8, 10, 12, 14, 16, 18, 20; int i; struct List L; initList(&L, 5); for(i = 0; i 10; i+) insertLastList(&L, ai); insertPosList(&L, 11, 48); insertPosList(&L, 1, 64); printf(%d , getElem(&L, 1); traverseList(&L); printf(%d , findList(&L, 10); updatePosList(&L, 3, 20); printf

23、(%d , getElem(&L, 3); traverseList(&L); deleteFirstList(&L); deleteFirstList(&L); deleteLastList(&L); deleteLastList(&L); deletePosList(&L, 5); ;deletePosList(&L, 7); printf(%d , sizeList(&L); printf(%d , emptyList(&L); traverseList(&L); clearList(&L); return 0;程序运行结果为:3、挑选一个你实训中使用过的较为复杂的算法,研究它的时间复杂

24、性。for(i=0;in;i+) for(j=0;ji;j+) for(k=0;k=0; i-) csift(p,i,n-1); for (i=n-1; i=1; i-) t=p0; p0=pi; pi=t; csift(p,0,i-1); return; void csift(char p, int i,int n) int j; char t; t=pi; j=2*(i+1)-1; while (j=n) if (jn)&(pjpj+1) j=j+1; if (tpj) pi=pj; i=j; j=2*(i+1)-1; else j=n+1; pi=t; void main() char *s; static char p=a,s,t,b,x,e,f,h,i, g,p, q,a,i,f,j,c,b,a,z,y,x; s=p; printf(n); printf(%sn,p); printf(n); pchap(s,22); printf(%sn,p);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2