package com.hnucm.linkedlist;
import java.util.Scanner;
public class orderline {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int maxSize;
Scanner scanner=new Scanner(System.in);
maxSize = scanner.nextInt();
Orderlist orderlist = new Orderlist(maxSize);
orderlist.init();
orderlist.orderinsert(10);
orderlist.orderinsert(10);
orderlist.orderinsert(10);
orderlist.orderinsert(10);
orderlist.posinsert(2,1);
orderlist.posinsert(2,orderlist.getLength()+1);
orderlist.orderde();
orderlist.posdel(1);
System.out.println(orderlist.getLength());
System.out.println(orderlist.getData());
}
}
class Orderlist{
private int maxSize;
private int[] arr;
private int length;
public Orderlist(int size) {
maxSize = size;
}
// 初始化
public void init(){
this.arr = new int[this.maxSize];
this.length=0;
}
// 判断是否为空
public boolean isEmpty(){
if(this.length==0){
System.out.println("链表为空");
return true;
}
return false;
}
// 判断是否已满
public boolean isFull(){
if(this.length == this.maxSize){
System.out.println("链表已满");
return true;
}
return false;
}
// 获取链表的长度
public int getLength(){
return this.length;
}
// 获取链表数据
public String getData(){
String str = "";
int temp;
for(int i=0;i<length;i++){
temp = this.arr[i];
str += temp+" ";
}
return str;
}
// 顺序插入操作
public boolean orderinsert(int val){
// 判满
if(this.isFull()){
return false;
}
else{
this.arr[length]=val;
this.length++;
return true;
}
}
// 按位置插入操作
// pos为正常位置
public boolean posinsert(int val,int pos){
// 判满
if(this.isFull()){
return false;
}
// 判断位置是否正确
else {
if (pos < 1 || pos > length + 1) {
System.out.println("插入位置不正确");
System.out.printf("插入位置应为%d~%d",1,this.length+1);
return false;
}
else{
// 从后往前将pos以及pos之后的数据向后移动
// 关键代码
for(int i = this.length;i>=pos;i--){
this.arr[i] = this.arr[i-1];
}
this.arr[pos-1] = val;
this.length++;
return true;
}
}
}
// 顺序删除元素
// 从前往后删
public boolean orderde(){
// 判空
if(this.isEmpty()){
return false;
}
else{
for (int i = 1;i<this.length;i++){
this.arr[i-1] = this.arr[i];
}
this.length--;
return true;
}
}
// 按位置删除元素
public boolean posdel(int pos){
// 判空
if(this.isEmpty()){
return false;
}
// 判断位置是否正确
else {
if(pos<1 || pos>this.length){
System.out.println("删除位置不正确");
System.out.printf("删除位置应为%d~%d",1,this.length);
return false;
}
else {
for(int i = pos;i<this.length;i++){
this.arr[i-1] = this.arr[i];
}
this.length--;
return false;
}
}
}
}