好多天过去了,也是因为刚入职不久,租了房子买家具等等,一直静不下心来,到现在才写第二篇博客,这一次主要是线性表的顺序存储实现,下一篇是线性表的链式存储实现。
线性表的概念已经有很多人发过了,我也是看着这一篇《线性表的基本概念》学的,所以概念就不多概述了,大家要是对线性表不清楚的可以先看这篇。不过里面使用的是C语言进行阐述的,我主要使用Java语言,并且会把全部代码上传(虽然很简单但是我还是想全部上传,仔细看一下就明白了,如果有误的地方,欢迎评论指出)。
先说说我我对线性表的看法,我之前觉得线性表的概念很模糊,明白是怎么回事,像顺序存储、链表结构也明白。但是我一直在一个误区里面,我以为实现线性表在每一个语言里面都有其特别的实现方式或者说是固定的方式。我一直觉得java是不是有某个封装好的方法或者c语言和其它语言里面都有封装好的方法。通过学习之后才发现,是自己对数据结构不熟悉才有这样幼稚的想法,它的实现的方式有很多种(所以我又专门买了在大学学过的数据结构算法等等其它书籍,五本书花了四百多,好贵啊T T)。我写的只是基于java实现的其中的一种方法,希望不要限制大家的想法。
程序分两个类,一个顺序存储封装类SequentialList.java(包含对元素的各种操作),一个是主类控制输出Test.java(一般都是这样来,面向对象的体现)。输出方式我使用的是JSON格式输出,所以期间会需要JSON的jar包,JSON目前非常流行,所以需要熟练的使用。
SequentialList包含以下方法:构造方法初始化属性(参数为列表长度)、清空列表元素、判断列表元素是否为空、返回列表所有元素、根据下标返回相应元素、按照顺序插入元素、在指定位置插入元素、删除指定位置元素
封装类:SequentialList.java
//注意代码中使用到JSON,所以需要导入JSON的相关jar包,网上有 //线性表中的顺序存储 public class SequentialList<Type> { private Type[] data; //列表数据 private int MaxLength; //列表最大长度 private int index; //列表当前长度下标 //构造方法初始化属性 public SequentialList(int MaxLength) { this.MaxLength = MaxLength; data = (Type[]) new Object[MaxLength]; //初始化数组 index = 0; //初始化下标 } //清空列表 public void ClearList() { data = null; index = 0; } //判断列表是否为空 public boolean IsEmpty() { if (index == 0) { return true; } return false; } //返回所有的元素 public String Get() { JSO