顺序表(java)详解(小白专用)
Posted 可乐好哇!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表(java)详解(小白专用)相关的知识,希望对你有一定的参考价值。
文章目录
顺序表(java)详解(小白专用)
1.顺序表是什么?
- 顺序表就是在数组上完成增删改查。
- 顺序表分为:动态和静态顺序表。
- 静态顺序表用于知道要用多少数据的工作场景。
- 动态顺序表可动态分配使用空间。
2.顺序表的利弊?
- 利:比链表查询的速度快;
- 弊:添加空间比较麻烦,浪费空间现象比较严重;增删改比链表麻烦些。
3.顺序表代码实现步骤?
-
顺序表需要哪些属性?
-
顺序表需要实现哪些功能?
-
代码如下:
- 创建SeqList类
// 创建一个SeqList类
public class SeqList
public int[] elem; // 定义存储数据的数组
public int usedSize; // 定义使用数组空间的长度
// 创建这个类的构造方法
public SeqList()
this.elem = new int[5]; // 分配5个空间给数组elem
2.添加addNum方法 (注意:与上面在同一个类中)
// pos代表插数的位置 data代表所插得数
public void addNum(int pos, int data)
// 判断使用的空间是否不足
if (this.usedSize == this.elem.length)
System.out.println("空间沾满了!");
return;
// 判断pos位置的合法性(顺序表是连续且顺序的,不能超过使用的长度,也不能不存在)
if (pos < 0 || pos > this.usedSize)
System.out.println("pos位置不合法!");
return;
// 向数组中任意位置插数值 (每插一个值,pos往后的值往后挪动一位且使用的长度加一)
for (int i = this.usedSize - 1; i >= pos; i++)
this.elem[i + 1] = this.elem[i];
this.elem[pos] = data;
this.usedSize++;
3.遍历顺序表
//打印顺序表
public void display()
for (int i = 0; i < this.usedSize; i++)
System.out.print(this.elem[i] + " ");
System.out.println();
4.查询一个数是否被包含数组内,包含则返回数组下标
//数组内是否包含,包含的话返回数组下标
public int search(int toFind)
for (int i = 0; i < this.usedSize; i++)
if (this.elem[i] == toFind)
return i;
return -1;
5.查询一个数是否被包含在数组内
//数组是否包含数字,包含返回true,反之false
public boolean contains(int toFind)
for (int i = 0; i < this.usedSize; i++)
if (this.elem[i] == toFind)
return true;
return false;
6.获取pos位置上的元素
// 判断使用的空间是否为空
public boolean isEmpty()
if (this.usedSize == 0)
return true;
return false;
//获取pos的位置上的值
public int getPos(int pos)
if (isEmpty())
return -1;
if (pos < 0 || pos >= this.usedSize)
return -1;
return this.elem[pos];
7.修改pos位置上的值
// 判断使用的空间是否为空
public boolean isEmpty()
if (this.usedSize == 0)
return true;
return false;
//修改pos位置上的值
public void updatePos(int pos, int val)
if (isEmpty())
return;
if (pos < 0 || pos >= this.usedSize)
return;
this.elem[pos] = val;
8.删除第一次出现key的数字(注意:别忘了将usedSize - -)
//删除第一次出现的数字
public void deleteOne(int key)
// key的下标
int index = search(key);
// 删谁从谁那开始
for (int i = index; i < this.usedSize - 1; i++)
this.elem[i] = this.elem[i + 1];
usedSize--;
9.清除数组值和查询使用的长度
//清除数据
public void clear()
this.usedSize = 0;
//使用的长度
public int size()
return this.usedSize;
10.测试后结果
运行结果如下:
建议: 多测几个测试用例!!!
总结
- 多思考顺序表实现的过程
- 理解顺序表的各种功能
- 建议画图编码并用,以便更好理解
- 理解之后,多多练习,你的思维会有更好的提升
以上是关于顺序表(java)详解(小白专用)的主要内容,如果未能解决你的问题,请参考以下文章