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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

本文(归并La和Lb得到新的线性表Lc-(2).doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

归并La和Lb得到新的线性表Lc-(2).doc

1、#include#include#define LIST_INIT_SIZE 100 / 初始化大小#define LISTINCREMENT 15 #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1 / 不可实行的#define OVERFLOW -2 / 溢出#include / exit()typedef int ElemType; / 基本(元素)类型typedef structElemType * elem;int length;int listsize;SqList;int In

2、itList(SqList *L) / 操作结果:构造一个空的顺序线性表(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!(*L).elem) / 存储分配失败exit(OVERFLOW); (*L).length=0; / 空表长度为 0(*L).listsize=LIST_INIT_SIZE; / 初始存储容量return OK;int DestroyList(SqList *L) / 初始条件:顺序线性表 L 已存在。操作结果:销毁顺序线性表 L free(*L).elem);(*L).elem=NULL;(*

3、L).length=0;(*L).listsize=0;return OK;int ClearList(SqList *L) / 初始条件:顺序线性表 L 已存在。操作结果:将 L 重置为空表 (*L).length=0;return OK;int ListEmpty(SqList L) / 初始条件:顺序线性表 L 已存在。操作结果:若 L 为空表,则返回 TRUE,否则返回 FALSEif(L.length=0)return TRUE;elsereturn FALSE;int ListLength(SqList L) / 初始条件:顺序线性表 L 已存在。操作结果:返回 L 中数据元素个数

4、return L.length;int GetElem(SqList L,int i,ElemType *e) / 初始条件:顺序线性表 L 已存在,1iListLength(L) 。操作结果:用 e 返回L 中第 i 个数据元素的值if(iL.length)exit(ERROR);*e=*(L.elem+i-1);return OK;int LocateElem(SqList L,ElemType e) / 初始条件:顺序线性表 L 已存在。操作结果:返回 L 中第 1 个与 e 相等的数据元素的位序。若这样的数据元素不存在,则返回值为 0。ElemType *p;int i=1; / i

5、的初值为第 1 个元素的位序p=L.elem; / p 的初值为第 1 个元素的存储位置while(iL.length)return INFEASIBLE;else*pre_e=*-p;return OK;int NextElem(SqList L,ElemType cur_e,ElemType *next_e) / 初始条件:顺序线性表 L 已存在。操作结果:若 cur_e 是 L 的数据元素,且不是最后一个,则用 next_e 返回它的后继,否则操作失败,next_e 无定义int i=1;ElemType *p=L.elem;while(i(*L).length+1) / i 值不合法r

6、eturn ERROR;if(*L).length=(*L).listsize) / 当前存储空间已满,增加分配newbase=(ElemType *)realloc(*L).elem,(*L).listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) / 存储分配失败exit(OVERFLOW);(*L).elem=newbase; / 新基址(*L).listsize+=LISTINCREMENT; / 增加存储容量q=(*L).elem+i-1; / q 为插入位置for(p=(*L).elem+(*L).length-1;p=q;-p)

7、 / 插入位置及之后的元素右移*(p+1)=*p;*q=e; / 插入 e+(*L).length; / 表长增 1return OK;int ListDelete(SqList *L,int i,ElemType *e) / 初始条件:顺序线性表 L 已存在,1iListLength(L) 。操作结果:删除 L的第 i 个数据元素,并用 e 返回其值,L 的长度减 1ElemType *p,*q;if(i(*L).length) / i 值不合法return ERROR;if(*L).length=0) / i 值不合法return ERROR;p=(*L).elem+i-1; / p 为被

8、删除元素的位置*e=*p; / 被删除元素的值赋给 eq=(*L).elem+(*L).length-1; / 表尾元素的位置for(+p;p=q;+p) / 被删除元素之后的元素左移*(p-1)=*p;(*L).length-; / 表长减 1return OK;void MergeList(SqList La,SqList Lb,SqList *Lc) / 算法 2.2/ 已知线性表 La 和 Lb 中的数据元素按值非递减排列/ 归并 La 和 Lb 得到新的线性表 Lc,Lc 的数据元素也按值非递减有序排列ElemType ai,bj;int La_len,Lb_len;int i=1,

9、j=1,k=0;La_len=ListLength(La); / 求线性表的长度Lb_len=ListLength(Lb); while(i=La_len) / 取 La 中第 i 个数据元素赋给 aiGetElem(Lb,j, / 取 Lb 中第 j 个数据元素赋给 bjif(ai=bj) / 将 La 和 Lb 中较小的数赋值给 LcListInsert(Lc,+k,ai);+i;else ListInsert(Lc,+k,bj);+j;while(i=La_len) / 若 La 中数据元素没有全部赋给 Lc,则将剩下的元素都赋给 LcGetElem(La,i+,ListInsert(L

10、c,+k,ai);while(j=Lb_len) / 若 Lb 中数据元素没有全部赋给 Lc,则将剩下的元素都赋给 LcGetElem(Lb,j+,ListInsert(Lc,+k,bj);void print(ElemType *c)printf(“%d “,*c);void main()SqList La,Lb,Lc;int i,j,k;InitList( / 创建空表 La 成功 printf(“请输入 La 的 4 个数据元素 Please enter the La four data elements:“);for(j=1;j=4;j+) / 在表 La 中插入 4 个元素 scan

11、f(“%d“,i=ListInsert(printf(“La=“); / 输出表 La 的内容 for(i=0;iLa.length;i+)print(printf(“n“);InitList( / 也可不判断是否创建成功 printf(“请输入 Lb 的 7 个数据元素 Please input Lb seven data elements:“);for(j=1;j=7;j+) / 在表 Lb 中插入 7 个元素scanf(“%d“,i=ListInsert(printf(“Lb=“); / 输出表 Lb 的内容 for(i=0;iLb.length;i+)print(printf(“n“);i=InitList( / 创建空表 La 成功 MergeList(La,Lb,printf(“Lc=“); / 输出表 Lc 的内容 for(i=0;iLc.length;i+)print(printf(“n“);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。