线性表的归并.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

甘肃政法学院

本科生实验报告

(一)

姓名:马大哈

学院:计算机科学学院专业:计算机科学与技术

班级:2011级计算机科学与技术本科班实验课程名称:数据结构

实验日期: 2012年 9月13 日指导教师及职称:陆军老师

实验成绩:

开课时间:2012-2013学年第一学期

甘肃政法学院实验管理中心印制

实验题目姓名

线性表的归并马大哈 班级

小组合作 无

2011 级计 学 号 201181110100

一、实验目的

利用两个线性表LA和LB分别表示两个集合A和B(即线性表中的数据元素即为集合中的成员),现要求一个新的集合A=AUB。这就要求对线性表作如下操作:扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。只要从线性表LB中依次取得每个数据元素,并依值在线性表LA中进行查访,若不存在,则插入之。

二.实验环境

MicrosoftVisualC++6.0

三、实验内容与步骤

#includec1.h

typedefintElemType;

#includec2-1.h/* 采用线性表的动态分配顺序存储结构*/#includebo2-1.c/* 可以使用bo2-1.c中的基本操作 */

Statusequal(ElemTypec1,ElemTypec2)

{/* 判断是否相等的函数,Union()用到 */if(c1==c2)

returnTRUE;else

returnFALSE;

}

voidUnion(SqList*La,SqListLb)/*算法2.1*/

{/* 将所有在线性表Lb中但不在La中的数据元素插入到La中 */ElemTypee;

intLa_len,Lb_len;inti;

La_len=ListLength(*La);/* 求线性表的长度 */Lb_len=ListLength(Lb);

for(i=1;i=Lb_len;i++)

{

GetElem(Lb,i,e);/* 取Lb中第i个数据元素赋给e*/if(!LocateElem(*La,e,equal))/*La中不存在和e相同的元素,则插

入之 */

ListInsert(La,++La_len,e);

}

}

voidprint(ElemType*c)

{

printf(%d,*c);

}

voidmain()

{

SqListLa,Lb;Statusi;

intj;i=InitList(La);

if(i==1)/* 创建空表La成功 */

for(j=1;j=5;j++)/* 在表La中插入5个元素 */i=ListInsert(La,j,j);

printf(La=);/* 输出表La的内容 */ListTraverse(La,print);

InitList(Lb);/* 也可不判断是否创建成功*/for(j=1;j=5;j++)/* 在表Lb中插入5个元素 */

i=ListInsert(Lb,j,2*j);

printf(Lb=);/* 输出表Lb的内容 */ListTraverse(Lb,print);

Union(La,Lb);

printf(newLa=);/* 输出新表La的内容 */ListTraverse(La,print);

}

四、实验过程与分析

(一)、#includec1.h是用户自定义的头文件,在该头文件中包含了多个头文件,宏定义以及常量定义。

(二)、#includec2-1.h用户自定义的头文件,是线性表的动态分配顺序存储结构。

(三)、#includebo2-1.c也是用户自定义的头文件,是顺序表示的线性表的基本操作。

StatusInitList(SqList*L);构造一个空的顺序线性表。

StatusDestroyList(SqList*L) ;销毁顺序线性表L。

StatusClearList(SqList*L);将L重置为空表。

StatusListEmpty(SqListL);判断线性表是否为空。

intListLength(SqListL);求线性表L的长度。

StatusGetElem(SqListL,inti,ElemType*e);用e返回L中第i个数据元素的值。

intLocateElem

(SqListL,ElemTypee,Status(*compare)(ElemType,ElemType));

返回L中第1个与e满足关系comp

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档