数据结构_顺序表
实现顺序表的增 删 改 查 插入 修改
package com.Test.Demo.数据结构;
import java.util.Scanner;
/**
* @Author Fu XvZhuang
* @Date 2020/9/13 11:32
* @Version 1.0
*/
public class 顺序表 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
My_list my_list = new My_list();
my_list.addNode(3);
my_list.addNode(2);
my_list.addNode(1);
my_list.addNode(4);
my_list.print_list();
System.out.println(my_list.delNode(4));
my_list.print_list();
my_list.node_list(0,1);
my_list.print_list();
System.out.println(my_list.select_list01(1));
System.out.println(my_list.select_list02(1));
my_list.ind_list(1,99);
my_list.print_list();
}
}
class My_list{ //顺序表 实现增删改查
static final int MAX_SIZE = 100; //定义常量 顺序表最大容量100
Object[] list = new Object[MAX_SIZE];
int len = 0;
public My_list() {
}
/*public Object[] my_sort(My_list m){//阉割版归并排序 合并两个有序顺序表
Object[] temp = new Object[MAX_SIZE];
int i = 0;
int j = 0;
int k = 0;
while(i<this.len&&j<m.len){
if(list[i]<=m.list[j]){
temp[k++] = list[i++];
}else {
temp[k++] = m.list[j++];
}
}
while(i<this.len){
temp[k++] = list[i++];
}
while(j<m.len){
temp[k++] = m.list[j++];
}
for(i = 0;i<k;i++){
this.list[i] = temp[i];
}
}*/
public void ind_list(int i,Object o){ //将o插入到i位置
if(this.len==this.MAX_SIZE){
System.out.println("线性表已满,插入失败");
}else if(i<0||i>=this.len){
System.out.println("插入位置错误");
}else{
for(int index=this.len;index>i;index--){
list[index] = list[index-1];
}
list[i] = o;
this.len++;
}
}
public void addNode(Object o){ //增加元素至线性表末尾
if(this.len==this.MAX_SIZE){
System.out.println("线性表已满,添加元素失败");
return;
}
list[this.len++] = o;
}
public Object delNode(int i){ //在线性表中删除第i个元素 并且返回此元素
Object ans;
if(i<=0||i>this.MAX_SIZE){
System.out.println("删除元素不存在");
ans = null;
}else{
ans = list[i-1];
for(int index = i-1;index<this.len-1;index++){
list[index] = list[index+1];
}
this.len--;
}
return ans;
}
public void node_list(Object o,int i){ //修改线性表第i个元素为o
if(i<=0||i>this.MAX_SIZE){
System.out.println("元素不存在");
}else{
list[i-1] = o;
}
}
public Object select_list01(int i){ //在线性表中按照序号查找内容
if(i<0||i>=this.MAX_SIZE){
System.out.println("元素不存在");
return null;
}else{
return list[i];
}
}
public int select_list02(Object o){ //在线性表中查找o 并返回下标
int ans = -1;
for(int i=0;i<this.len;i++){
if(list[i].equals(o)){
ans = i;
break;
}
}
return ans;
}
public void print_list(){
for(int i=0;i<this.len;i++){
System.out.print(this.list[i]+" ");
}
System.out.println();
}
}