【数据结构】顺序表-创新互联
目录
创新互联公司主要业务有网站营销策划、网站设计、成都做网站、微信公众号开发、微信平台小程序开发、H5高端网站建设、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都营销网站建设资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。👀一.初识顺序表
👺二.顺序表表的实现
1. 顺序表用数组elem实现存放元素,以及usedSize来记录使用空间,可以自行设置默认容量大小。
2.在末尾新增元素add(int data)
3.在pos位置新增元素add(int pos ,int data)
4.判断是否包含某个元素contains(int toFind)
5.找到某元素对应位置indexOf(int toFind)
6.获取pos位置元素get(int pos)
7.给pos位置元素设置为value set(int pos, int value)
8.删除第一次出现的关键字toRmove remove(int toRmove)
9.获取顺序表长度 getSize()
10.清空顺序表clear()
整体代码展示
👀一.初识顺序表 顺序表是线性表中的一种顺序表是用一段 物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 👺二.顺序表表的实现
提前准备2个方法能封装尽量封装(当养成好习惯)一个扩容方法 一个判断是否已满
private void reSize(){
this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
}
public boolean isFull(){
return usedSize == elem.length;
}
1. 顺序表用数组elem实现存放元素,以及usedSize来记录使用空间,可以自行设置默认容量大小。public class MyArrayList {
public int[] elem;//用一个数组储存元素
public int usedSize;// 记录已使用空间
public static final int DEFAULT_SIZE=10; //给定默认空间大小
public MyArrayList(){
this.elem=new int[DEFAULT_SIZE];
}
}
2.在末尾新增元素add(int data)// 新增元素,默认在数组最后新增
public void add(int data) {
if (isFull()){
reSize();
}
this.elem[usedSize]=data;
usedSize++;
}
3.在pos位置新增元素add(int pos ,int data)public void add(int pos, int data) {
checkIndex(pos);
if (isFull()){
reSize();
}
for (int i=usedSize-1;i>=pos;i--){
elem[i+1]=elem[i];//从pos开始每个数往后挪一个位置
}
elem[pos]=data;
usedSize++;
}
private void checkGetIndex(int pos){
if (pos>=usedSize||pos<0){
throw new IndexOutOfBoundException("get元素时位置不合法");
}
}
4.判断是否包含某个元素contains(int toFind)// 判定是否包含某个元素
public boolean contains(int toFind) {
for (int i=0;i
5.找到某元素对应位置indexOf(int toFind)// 查找某个元素对应的位置
public int indexOf(int toFind) {
for (int i=0;i
6.获取pos位置元素get(int pos)// 获取 pos 位置的元素
public int get(int pos) {
checkIndex(pos);
return this.elem[pos]; }
private void checkIndex(int pos){
if (pos>usedSize||pos<0){
throw new IndexOutOfBoundException("add元素时位置不合法");
}
}
7.给pos位置元素设置为value set(int pos, int value)// 给 pos 位置的元素设为 value
public void set(int pos, int value) {
checkIndex(pos);
this.elem[pos]=value;
}
8.删除第一次出现的关键字toRmove remove(int toRmove)//删除第一次出现的关键字key
public boolean remove(int toRemove) {
if (indexOf(toRemove)==-1){
System.out.println("没找到这个数");
return false;
}
int index=indexOf(toRemove);
for (int i=index;i
9.获取顺序表长度 getSize()public int getSize() {
return usedSize; }
10.清空顺序表clear()// 清空顺序表
public void clear() {
usedSize=0;
}
整体代码展示import java.util.Arrays;
public class MyArrayList {
public int[] elem;//用一个数组储存元素
public int usedSize;// 记录已使用空间
public static final int DEFAULT_SIZE=10; //给定默认空间大小
public MyArrayList(){
this.elem=new int[DEFAULT_SIZE];
}
// 新增元素,默认在数组最后新增
public void add(int data) {
if (isFull()){
reSize();
}
this.elem[usedSize]=data;
usedSize++;
}
private void reSize(){
this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
}
public boolean isFull(){
return usedSize == elem.length;
}
// 在 pos 位置新增元素
public void add(int pos, int data) {
checkIndex(pos);
if (isFull()){
reSize();
}
for (int i=usedSize-1;i>=pos;i--){
elem[i+1]=elem[i];
}
elem[pos]=data;
usedSize++;
}
private void checkIndex(int pos){
if (pos>usedSize||pos<0){
throw new IndexOutOfBoundException("add元素时位置不合法");
}
}
private void checkGetIndex(int pos){
if (pos>=usedSize||pos<0){
throw new IndexOutOfBoundException("get元素时位置不合法");
}
}
// 判定是否包含某个元素
public boolean contains(int toFind) {
for (int i=0;i
本人第一次写博客,主要为学习记录使用,如有错误和不好的地方欢迎大家指出。
最后谢谢大家的阅读。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:【数据结构】顺序表-创新互联
网站地址:http://myzitong.com/article/dpcicp.html