实验二 线性表【优质】.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最新精品文档,知识共享! 实验报告二 线性表 班级: 2013055 姓名: 陈越 学号: 专业: 计算机科学与技术 实验目的: 理解线性表的逻辑结构、两种存储结构和数据操作; 应用顺序表的基本算法实现集合A=AUB算法,应用顺序表的基本算法实现两有序顺序表的归并算法; 掌握单链表的遍历、插入和删除等操作算法,实现多项式相加。 实验内容: 1、设有线性表 LA=(3,5,8,11)和 LB=(2,6,8,9,11,15,20); ① 若LA和LB分别表示两个集合A和B,求新集合 A=A U B(‘并’操作,相同元素不保留); 预测输出:LA=(3,5,8,11,2,6,9,15,20) 实现代码: package cy; import java.util.Arrays; public class text3 { public static void main(String[] args) { int la[]={3,5,8,11}; int lb[]={2,6,8,9,11,15,20}; int a=la.length; int b=lb.length; int na=0,nb=0; int n=0; int i2=0; int[] lc=new int[a+b]; if(ab) { n=a*2+(b-a)-1; } if(ab) { n=b*2+(a-b)-1; } System.out.println(Arrays.toString(la)); System.out.println(Arrays.toString(lb)); for(int i=1;i=n;i++) { while(naa nbb) { if(la[na]lb[nb]) { lc[i-1]=la[na]; na=na+1; break; } if(la[na]lb[nb]) { lc[i-1]=lb[nb]; nb=nb+1; break; } if(la[na]==lb[nb]) { lc[i-1]=la[na]; na=na+1; nb=nb+1; n=n-1; break; } } i2=i; } if(na==a+1 nb==a) { for(int k=0;kb-na;k++) { lc[i2+k-1]=la[na+k]; } } if(na==a nb==a+1) { for(int k=0;kb-nb;k++) { lc[i2+k-1]=lb[nb+k]; } } System.out.println(Arrays.toString(lc)); } } 粘贴运行结果: ② 将LA与LB表归并,要求仍有序(相同元素要保留) 预测输出:LC=(2,3,5,6,8,8,9,11,11,15,20) package cy; import java.util.Arrays; public class text3 { public static void main(String[] args) { int La[]={3,5,8,11},Lb[]={2,6,8,9,11,15,20}; int temp[]=new int[La.length+Lb.length]; for(int i=0;iLa.length;i++){ temp[i]=La[i]; } for(int i=0;iLb.length;i++){ temp[La.length+i]=Lb[i]; } int size=temp.length; int[] result=new int[size]; for(int i=0,j=0;jsize itemp.length;i++,j++){ if(temp[i]==-1){ j--; } else{

文档评论(0)

哆啦 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档