当前位置:文档之家› 数据结构(Java版) 线性表的实现与应用完整版

数据结构(Java版) 线性表的实现与应用完整版

实验报告课程名称数据结构实验项目线性表的实现及应用实验仪器PC机一台学院_____ 专业班级/学号姓名实验日期成绩指导教师北京信息科技大学信息管理学院(数据结构课程上机)实验报告System、out、println("重新设置第5个元素为19:");list1、set(4, 19);list1、insert(2, 100);list1、append(20);System、out、println("删除8:"+list1、remove(8));System、out、print("修改后的顺序表:");System、out、println(list1、toString());list1、removeAll();System、out、println("删除后的顺序表:"+list1、toString()); //为空System、out、println("寻找元素50:"+list1、search(50));}}(2)a)package ex1;public class Del {public Del(int i,int k){String values[]={"A","b","C","d","e","f","g","h"};int n =values、length;for(int j=0;j<n;j++){System、out、print(values[j]+" ");}System、out、println();for(int j=i+k;j<n;j++){values[j-k]=values[j];}n=n-k;for(int j=0;j<n;j++){System、out、print(values[j]+ " " );}System、out、println();}public static void main(String args[]){new Del(2,3);}}b)package ex1;public class Del2 {public Del2(int i,int k){String values[]={"A","x","y","y","b","c","h"};SeqList<String> list=new SeqList<String>(values);System、out、println(list、toString());for(int j=1;j<=k;j++){ list、remove(i);}System、out、println(list、toString());}public static void main(String args[]){new Del2(2,3);}}c)package ex1;public class Merge {public Merge(){Integer values1[]={1,3,5,11};SeqList<Integer> list1=new SeqList<Integer>(values1);Integer values2[]={2,4,5,22,23};SeqList<Integer> list2=new SeqList<Integer>(values2);SeqList<Integer> list3=new SeqList<Integer>();int i=0,j=0;while(i<list1、length()&&j<list2、length()){if(list1、get(i)<list2、get(j)){list3、append(list1、get(i));i++;}else{list3、append(list2、get(j));j++;}}while(i<list1、length()){list3、append(list1、get(i));i++;}while(j<list2、length()){list3、append(list2、get(j)) ;j++;}System、out、println(list1、toString());System、out、println(list2、toString());System、out、println(list3、toString());}public static void main(String args[]){new Merge();}}d)package test;import ex1、SeqList;public class Intersection {public Intersection(){Integer values1[]={1,3,5,11,12,13,22,23,50};SeqList<Integer> list1=new SeqList<Integer>(values1);Integer values2[]={2,4,5,12,19,20,22,23,};SeqList<Integer> list2=new SeqList<Integer>(values2);SeqList<Integer> list3=new SeqList<Integer>();int i=0,j=0;while(i<list1、length()&&j<list2、length()){if(list1、get(i)<list2、get(j)){i++;}else if(list1、get(i)>list2、get(j)){j++;}else{ list3、append(list1、get(i));i++;j++;}}System、out、println(list1、toString());System、out、println(list2、toString());System、out、println(list3、toString());}public static void main(String args[]){new Intersection();}}3、(1)package ex1;public class Josephus {public Josephus(int n, int k, int m){System、out、println("Josephus("+n+","+k+","+m+"),");SeqList<String> list = new SeqList<String>(n);//创建顺序表实例,元素类型就是数字字符,只能排到n=9,否则达不到效果for (int i=0; i<n; i++)list、append((char)('1'+i)+""); //顺序表尾插入,O(1)// System、out、println(list、toString()); //输出顺序表的描述字符串,O(n)int i = k; //计数起始位置while (list、length()>1) //多于一个元素时循环,计数O(1){i = (i+m-1) % list、length(); //按循环方式对顺序表进行遍历,圆桌循环System、out、print("出列"+list、remove(i)、toString()+","); //删除i位置对象,O(n)// System、out、println(list、toString());}System、out、println("出列"+list、get(0)、toString());//get(0)获得元素,O(1)}public static void main(String args[]){new Josephus(9,1,3);}}(2)package test;import ex1、SeqList;public class JosephusA {public JosephusA(int n, int k, int m){System、out、println("Josephus("+n+","+k+","+m+"),");SeqList<Integer> list = new SeqList<Integer>(n);//创建顺序表实例,元素类型就是数字字符,只能排到n=9,否则达不到效果for (int i=0; i<n; i++)list、append(i); //顺序表尾插入,O(1) // System、out、println(list、toString()); //输出顺序表的描述字符串,O(n)int i = k; //计数起始位置while (list、length()>1) //多于一个元素时循环,计数O(1){i = (i+m-1) % list、length(); //按循环方式对顺序表进行遍历,圆桌循环System、out、print("出列"+list、remove(i)、toString()+","); //删除i位置对象,O(n)// System、out、println(list、toString());}System、out、println("出列"+list、get(0)、toString());//get(0)获得元素,O(1)}public static void main(String args[]){new JosephusA(15,2,9);}}第二部分:(4)、package ex2;public class Node<T> {public T data; //数据域public Node<T> next; //地址域,后继结点//构造结点public Node(T data,Node<T> next){this、data =data;this、next=next;}str += ","; //不就是最后一个结点时,加分隔符}return str+")";}}(5)、package ex2;public class SortedSinglyList<T extends Comparable <? super T>> extends SinglyList<T>{//构造空排序单链表public SortedSinglyList(){super(); //默认调用父类构造方法SinglyList()}public SortedSinglyList(SinglyList<T> list){super(); //构造空单链表for (Node<T> p=list、head、next; p!=null; p=p、next)//直接插入排序,每趟插入1个元素this、insert(p、data); //排序单链表按值插入}//构造 ,将values数组中的所有对象按值插入public SortedSinglyList(T values[]){super();for(int i=0;i<values、length;i++)this、insert(values[i]);}public void set(int i, T x) //设置第i个元素值为xpublic static void main(String[] args){new Del1(2,2);}}f、package ex2;public class Del2 {public Del2(int mink,int maxk){Integer[] values={1,3,9,17,34};SortedSinglyList<Integer> list = new SortedSinglyList<Integer>(values);System、out、println(list、toString());Node<Integer> p=list、head;int j=0;while(p、next!=null && p、next、data<=mink){p=p、next;j++;}while(p、next!=null &&p、next、data<maxk){list、remove(j);}System、out、println("list="+list、toString());}public static void main(String args[]){new Del2(2,18);}}g、package ex2;public class Meger{}(7)、package Poly;public interface Subible<T> //可相加接口,T表示数据元素的数据类型{public void sub(T t); //+=加法,约定两元素相加规则public boolean removable(); //约定删除元素条件}package Poly;//项类,一元多项式的一项,实现可比较接口与可相加接口public class TermX implements Comparable<TermX>, Subible<TermX>{protected int coef, xexp; //系数,x指数(可为正、0)public TermX(int coef, int xexp) //构造一项{this、coef = coef;this、xexp = xexp;}public TermX(TermX term) //拷贝构造方法{this(term、coef, term、xexp);}//以“系数x^指数”的省略形式构造一元多项式的一项。

相关主题