Java语言实现顺序表的增删改查

线性表是最简单,最基本,也是最常见的一种线性结构。它有两种存储方式:顺序存储和链式存储。它的基本操作主要是插入、删除和检索等。

线性表的用途广泛,应用于信息检索、存储管理、模拟技术和通信领域。软件工程的初学者可能会忽视数据结构这门课程,而把更多的精力集中在高级语言的课程上,其实这是一个很严重的误解。

本篇是我个人对于线性表的初步理解,望各位大佬发表高见,多多指教。这里的编程语言我选择Java

接下来演示ArrayList数组实现顺序表的增删查改,代码和实验结果如下:

 

首先先建立一个学生类并建立相应的Getters/Setters方法和ToString方法(这里省略):

 public class Student {

  private String name;

  private  int number;

  private String major;}

然后建立一个测试类MainText,在该类中实现对ArrayList数组的增删查改,代码如下:

public class MainText {

     public static  Boolean IsEmpty(ArrayList list){

   if(list.size()==0)

   {

return true;   

   }

  return false;

  }

public static int ListSize(ArrayList list)

  {

  if(IsEmpty(list))

  {

  return 0;

  }

  return list.size();	  

  }

 public static boolean Del(ArrayList list,int i)

 {

 if(IsEmpty(list))

 {

 return false;

 }

 else

 {     list.remove(i);

 return false;

 }

 }

 public static String dispaly(ArrayList list,int i)

  {

  if(i>list.size()&&i<0)

  {

  return null;

  }

  else

  {   

  return list.get(i).toString();

  }	  

  }

  public static void Add(int i,ArrayList list,ArrayList array)

  {

 list.add(i, array);

  }

  public static void Change(int i,ArrayList list,ArrayList array)

  {

  list.set(i, array);

  }

public static void main(String []args){

      ArrayList list=new ArrayList();

      Student [] stu=new Student[11];

 	 for(int i=0;i<stu.length;i++){   stu[i]=new Student();

            stu[i].setMajor("软件工程");

            stu[i].setName("小明");

            stu[i].setNumber(i);

            list.add(stu[i]);

}

            System.out.println(list);

            System.out.println(ListSize(list));

            System.out.println(dispaly(list,3));

            ArrayList  array=new ArrayList();

            Student stu1=new Student();

            stu1.setMajor("yuwen ");

            stu1.setName("小红");

            stu1.setNumber(999);

            array.add(stu1);

            Add(3,list,array);

            Change(2,list,array);

            System.out.println(list);

}

}

 

实验结果:

[Student [name=小明, number=0, major=软件工程],

Student [name=小明, number=1, major=软件工程],

Student [name=小明, number=2, major=软件工程],

 Student [name=小明, number=3, major=软件工程],

Student [name=小明, number=4, major=软件工程],

 Student [name=小明, number=5, major=软件工程],

 Student [name=小明, number=6, major=软件工程],

 Student [name=小明, number=7, major=软件工程],

Student [name=小明, number=8, major=软件工程],

Student [name=小明, number=9, major=软件工程],

Student [name=小明, number=10, major=软件工程]]

11



Student [name=小明, number=3, major=软件工程]



[Student [name=小明, number=0, major=软件工程], //number=1的值被删除

[Student [name=小红, number=999, major=yuwen ]],//对number=2的数组节点的属性值更改

[Student [name=小红, number=999, major=yuwen ]],//在数组节点下表为3的节点前面插入一个数组节点

 Student [name=小明, number=3, major=软件工程],

Student [name=小明, number=4, major=软件工程],

Student [name=小明, number=5, major=软件工程],

Student [name=小明, number=6, major=软件工程],

 Student [name=小明, number=7, major=软件工程],

 Student [name=小明, number=8, major=软件工程],

Student [name=小明, number=9, major=软件工程],

Student [name=小明, number=10, major=软件工程]]

简单分析:

1. 无论是顺序表还是链表,要对表进行操作,首先进行的处理就是判空。这里有一个 IsEmpty()方法,用来返回当前表是否为空表。

2.  ListSize()方法用来返回当前数组中的元素个数

3. DelArrayList list,int i)方法用来删除数组中的某个元素,方法中有两个参数,一个是整型数组下标,另一个是ArrayList类型的对象,该对象指向要删除元素的数组。

4. dispaly(ArrayList list,int i)方法打印出具体数组下标对应的数组节点的信息。

5. Change(int i,ArrayList list,ArrayList array)方法实现数组下标为i的数组节点中的属性值,ArrayList 类型的list对象指向被操作的数组,ArrayList 类型的array对象中存储着需要更改的节点的属性值。调用ArrayList中的.set()方法实现更新节点信息。

6. Add(int i,ArrayList list,ArrayList array)方法类似Change(),只不过是调用ArrayList中的.add()方法实现更新节点信息。其实该程序中完全没有必要写一个Add()方法,只要在MainText()中直接调用ArrayList封装的add()方法即可。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,为您定义一个顺序表类型变量: ``` typedef struct { int *data; // 存储数据的数组指针 int length; // 顺序表的长度 int capacity; // 顺序表的容量 } SeqList; ``` 其中,`data`是一个指向整型数组的指针,用于存储顺序表中的数据;`length`是当前顺序表中的元素数量;`capacity`则表示当前顺序表可以容纳的最大元素数量。 ### 回答2: 顺序表是一种线性结构,在计算机编程中常用于存储一组具有相同数据类型的元素。定义一个顺序表类型变量,可以通过以下方式实现。 1. 首先,我们需要选择一种编程语言实现顺序表类型变量。常见的选择包括C、C++、Java和Python等。 2. 在选择编程语言后,我们可以使用该语言提供的数据结构来定义顺序表变量。在C语言中,我们可以使用数组来定义顺序表类型变量;在C++和Java中,我们可以使用类或对象来定义顺序表类型变量;在Python中,我们可以使用列表类型来定义顺序表类型变量。 3. 在定义顺序表类型变量时,我们需要指定元素的数据类型。例如,我们可以定义一个整型顺序表、字符型顺序表或者字符串型顺序表,具体取决于需求。 4. 需要注意的是,顺序表类型变量的大小是固定的,即在定义时需要指定容量大小。如果需要动态调整顺序表的大小,可以使用动态数组、动态列表或者链表等数据结构实现。 5. 定义顺序表类型变量后,我们可以对其进行插入、删除、查找、遍历等操作,以满足具体的需求。 总而言之,定义一个顺序表类型变量需要选择合适的编程语言数据结构,并指定元素的数据类型和容量大小。这样可以方便地对顺序表进行各种操作,以满足程序的需求。 ### 回答3: 顺序表是一种常见的数据结构,用来存储一组元素。定义一个顺序表类型变量可以通过以下步骤实现: 1. 首先需要确定顺序表中元素的类型。可以是整数、浮点数、字符串等各种数据类型,根据实际需求选择合适的类型。 2. 确定顺序表的最大容量,即可以容纳的元素个数上限。可以根据实际需求来确定,如果需要存储的元素个数多且不确定,可以选择一个相对较大的容量。 3. 声明一个数组变量作为顺序表的底层数据结构,该数组的长度需要与最大容量一致,并且元素类型与第一步确定的类型一致。例如可以声明一个整型数组变量。 4. 定义一个变量来记录顺序表当前的长度,即已经存储的元素个数。可以命名为length或size,并初始化为0,表示初始状态下顺序表中没有元素。 5. 定义相关操作函数来对顺序表进行增删改查等操作,如插入元素、删除元素、修改元素、按索引查找元素等。 通过以上步骤,就可以成功地定义一个顺序表类型的变量。例如,可以定义一个int类型的顺序表变量seqList,最大容量为100,即可以存储最多100个整数。同时还需要定义保存当前长度的变量length,并将其初始化为0。然后,可以使用定义的操作函数来对该顺序表进行各种操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值