数据结构:Chapter2 列表详解与操作

版权申诉
0 下载量 26 浏览量 更新于2024-07-03 收藏 1.33MB PPT 举报
“数据结构英文课件:Chap2 Lists.ppt” 本课件主要介绍了数据结构中的一个重要概念——列表(Lists),这是计算机科学中处理数据组织的一种基本方式。在本章中,我们将深入探讨列表的逻辑结构、特点以及常见的操作。 2.1 逻辑结构 of 列表 列表的逻辑结构定义如下:列表是一个有限的序列,由相同数据类型的一系列数据元素组成。通常我们用A1, A2, A3, ..., AN来表示一个列表,其中N表示列表的大小。当N等于0时,我们称这个列表为空列表。 2.1.2 列表的特点 对于非空列表,我们可以表示Ai+1紧跟在Ai之后(i < N),而Ai-1则位于Ai之前(i > 1)。列表的第一个元素是A1,最后一个元素是AN。特别地,我们不为A1定义前驱元素,也不为AN定义后继元素。每个元素在列表中的位置由其索引i标识(1 ≤ i ≤ N)。 2.1.3 常见的列表操作 - Init_List:创建一个新的空列表。这是列表操作的起点,用于初始化列表的状态。 - Print_List:打印列表中的所有数据元素,方便查看和调试。 - Make_Empty:将列表清空,使其成为一个空列表,释放或重置列表所占用的存储空间。 - Size_List:返回列表中数据元素的数量,即列表的大小。 - Get_List(i):返回列表中位置i的数据元素,要求1 ≤ i ≤ N。此操作用于获取列表中的特定元素。 - Locate_List(key):查找并返回key在列表中的首次出现的位置。如果key不在列表中,则可能返回特殊值或错误提示。 - Insert_List(x, i):在位置i插入元素x,1 ≤ i ≤ N+1。这会将列表中原本在i位置的元素及其后的所有元素向后移动一位。 - Delete_List(x, i):从位置i删除元素x,1 ≤ i ≤ N。删除操作会使得列表中i位置及之后的所有元素向前移动一位。 举例2.1:这个例子可能展示了一个具体的列表操作实例,比如创建列表、插入元素、删除元素、查找元素等,以帮助理解这些操作的实际应用和效果。 通过以上内容,我们可以了解到列表作为数据结构的基本组成部分,如何在实际编程和算法设计中发挥重要作用。理解和掌握列表的逻辑结构和操作,有助于我们在解决复杂问题时更有效地组织和处理数据。

package chap03; import java.util.Scanner; import chap02.SqList; public class LinkListTest { public static void menu() { System.out.println("-------------------"); System.out.println("操作选项菜单"); System.out.println("1.输出表长"); System.out.println("2.插入元素"); System.out.println("3.删除元素"); System.out.println("4.定位元素"); System.out.println("5.取表元素"); System.out.println("6.显示线性表"); System.out.println("0.退出"); System.out.println("-------------------"); } public static void main(String[] args) throws Exception { LinkList L =new LinkList(8); Scanner sc = new Scanner(System.in); // 第二步:显示操作菜单 menu(); // 第三步:循环选择操作菜单,直到输入操作代码为0结束程序 int op; do { System.out.print("请输入操作代码(0-退出):"); op = sc.nextInt(); switch (op) { case 1: System.out.println("链表的长度:" +L.length()); break; case 2: System.out.println("请输入要插入的位置:"); // 位置是从0开始的 int loc = sc.nextInt(); System.out.println("请输入要插入该位置的值:"); Object num = sc.next(); L.insert(loc,num); System.out.println("插入操作成功!"); break; case 3: System.out.print("请输入要删除元素的位置:"); loc = sc.nextInt(); L.remove(loc); System.out.println("删除操作成功"); break; case 4: System.out.print("请输入要查找的元素:"); num = sc.next(); System.out.println(num + "在表中的位置:" +L.indexOf(num)); break; case 5: System.out.print("请输入要查找元素的位置:"); loc = sc.nextInt(); System.out.println(loc + "位置上的元素为:" + L.indexOf(loc)); break; case 6: L.display(); break; case 0: System.out.print("程序结束!"); return; default: System.out.print("输入操作代码有误,请重新选择!"); } } while (op != 0); sc.close(); } }

2023-03-14 上传

F0/0 10.0.0.1/30 OSPF F1/0 10.5.5.1/30 EIGRP1 F2/0 10.4.4.1/30 EIGRP2 EIGRP1 F0/0 10.6.6.1/30 EIGRP2 F1/0 10.5.5.2/30 EIGRP F2/0 单臂路由 192.168.0.254/24 192.168.2.254/24 192.168.3.254/24 S1 EIGRP2 F0/0 10.6.6.2/30 EIGRP1 F2/0 10.4.4.2/30 EIGRP 交换机地址规划表 设备名称 接口 连接设备 管理 IP S1 F0/1 EIGRP1 Vlan1:192.168.0.1/24 F0/2 S2 F0/3 S3 S2 F0/1 S3 Vlan2:192.168.2.2/24 F0/2 S1 F0/4 PC2 S3 F0/1 S2 Vlan3:192.168.3.2/24 F0/3 S1 F0/4 PC3 PC 地址规划表 设备名称 IP 地址及掩码 网关 连接设备 PC1 192.168.1.1/24 192.168.1.254 连接 OSPF2 PC2 192.168.2.1/24 192.168.2.254 连接 S2 PC3 192.168.3.1/24 192.168.3.254 连接 S3 2、在 OSPF、OSPF1、OSPF2 三台路由器上配置 OSPF 0 单区域路由,所有接口网络参与路由 更新,并为相应接口配置被动接口;配置默认路由重分布。 3、在 EIGRP、EIGRP1、EIGRP2 三台路由器上配置 EIGRP 路由,所有接口网络参与路由更新, 并为相应接口配置被动接口。 4、在 EIGRP 路由器上配置相应静态路由,使得网络互通(OSPF 上已配置默认路由);配置 静态路由注入。 5、EIGRP1、S1 间配置单臂路由。 6、交换机 S1、S2、S3 基本配置:为各交换机配置网关及管理 VLAN IP 地址;VTP:S1 为 server, S2、S3 为 client,密码为 cisco,域名为 cisco,S1 上创建 vlan 2、3;S2、S3 上划分相应端口 到 vlan;配置 trunk 链路。 7、Internet、EIGRP 间配置 NAT:地址池为 1.1.1.3-1.1.1.10,子网掩码 255.255.255.0,只允 许 192.168.0.0/16 网段地址访问 internet。 8、Internet、EIGRP 间配置 PPP,chap 双向认证,密码为 cisco。结合以上要求给出操作命令

2023-06-10 上传