java数据结构单链表的基本操作

您所在的位置:网站首页 逆序输出单链表中的所有元素 java数据结构单链表的基本操作

java数据结构单链表的基本操作

2024-07-12 09:25| 来源: 网络整理| 查看: 265

文中内容来源于《数据结构 --Java语言描述》(第二版) 刘小晶 杜选 主编 此系列文章作为学校实验记录,若文中内容有误,请大家指出,谢谢

实验目的

1、掌握线性链表的操作特点,即指针是逻辑关系的映像。 2、掌握动态产生单链表的方法。 3、熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。 4、熟练掌握单链表的取元素操作

实验内容

1、定义单链表类型并动态创建单链表; 2、实现单链表的取元素操作、插入操作和删除操作; 3、实现输出单链表中各元素值的操作; 4、将单链表中的最小元素移到最前面。

实验步骤

1、定义单链表节点类; 2、定义单链表类,并实现单链表的创建、插入、删除、取元素操作和将单链表中的最小元素移到最前面的操作; 3、从键盘上依次输入21、75、30、18、42、56,顺序或逆序创建单链表,并输出单链表中的各元素值; 4、分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值; 5、删除单链表中的第4个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值; 6、取单链表中的第5个数据元素和第7个数据元素; 7、将单链表中的最小元素移到最前面,并输出单链表中的各元素以检查操作是否正确实现。

源代码 //Node.java package sjjg_test1; public class Node { public Object data; public Node next; public Node(Object data, Node next) { this.data = data; this.next = next; } public Node(Object data) { this(data,null); } public Node() { this(null, null); } } //LinkList.java package sjjg_test1; import java.util.Scanner; public class LinkList { public Node head; public LinkList() { head = new Node(); } public LinkList(int n,boolean Order) throws Exception { this(); if(Order) create1(n); else create2(n); } public void create1(int n) throws Exception { Scanner sc = new Scanner(System.in); for(int j=0;j0) { System.out.println("请输入所取元素位置"); xiabiao = input.nextInt(); try { System.out.println(a.get(xiabiao)); } catch (Exception e) { e.printStackTrace(); } sum--; } break; case 4://moveMin a.moveMin(a.head); a.display(); break; case 5: a.clear(); break; case 6: System.out.println(a.isEmpty()); break; case 7: System.out.println("链表长度为:"+a.length()); break; case 8: System.out.println("请输入查找元素个数"); sum = input.nextInt(); while(sum>0) { System.out.println("请输入要查找元素"); shuzi = input.nextInt(); System.out.println(shuzi+"的下标为:"+a.indexOf(shuzi)); sum--; } break; case 9: break; default: System.out.println("输入有误"); break; } pEnd = 1; while(pEnd>0) { System.out.println("是否要结束本条链表的操作?y/n"); judge = input.next(); if(judge.equals("y")) break; else if(judge.equals("n")) pEnd = -1; else System.out.println("输入有误"); } if(pEnd==1) { break; } } input.close(); System.out.println("end of program"); } } 运行结果 how many nodes do you want to creat in this LinkList: 6 please input 6 numbers to creat a LinkList: 21 75 30 18 42 56 insert successfully insert successfully insert successfully insert successfully insert successfully insert successfully the numbers of LinkList are following: 21 75 30 18 42 56 请输入以下选项对应的数字: 1:插入 2:删除 3:获取元素 4:将最小值所在节点移动到表头 5:清空链表 6:判断链表是否为空 7:获取列表长度 8:按值查找元素下标 9:结束本次操作 1 请输入插入元素个数 2 请输入要插入元素的位置和值 2 67 insert successfully 21 75 67 30 18 42 56 8 10 java.lang.Exception: 插入位置不合法 是否要结束本条链表的操作?y/n at sjjg_test1.LinkList.insert(LinkList.java:76) at sjjg_test1.LinkListTest.main(LinkListTest.java:33) n 请输入以下选项对应的数字: 1:插入 2:删除 3:获取元素 4:将最小值所在节点移动到表头 5:清空链表 6:判断链表是否为空 7:获取列表长度 8:按值查找元素下标 9:结束本次操作 2 请输入删除个数 2 请输入删除元素位置 3 remove successfully 21 75 67 18 42 56 7 java.lang.Exception: 删除位置不合法 at sjjg_test1.LinkList.remove(LinkList.java:91) at sjjg_test1.LinkListTest.main(LinkListTest.java:49) 是否要结束本条链表的操作?y/n n 请输入以下选项对应的数字: 1:插入 2:删除 3:获取元素 4:将最小值所在节点移动到表头 5:清空链表 6:判断链表是否为空 7:获取列表长度 8:按值查找元素下标 9:结束本次操作 3 请输入所取元素个数 2 请输入所取元素位置 4 get successfully 42 请输入所取元素位置 6 java.lang.Exception: 第6个元素不存在 是否要结束本条链表的操作?y/n at sjjg_test1.LinkList.get(LinkList.java:60) at sjjg_test1.LinkListTest.main(LinkListTest.java:65) n 请输入以下选项对应的数字: 1:插入 2:删除 3:获取元素 4:将最小值所在节点移动到表头 5:清空链表 6:判断链表是否为空 7:获取列表长度 8:按值查找元素下标 9:结束本次操作 4 18 21 75 67 42 56 是否要结束本条链表的操作?y/n y end of program


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3