Java线性表-顺序表

package book;

import java.util.Scanner;

public class DemoList {
	final int DefaultSize = 10;     //定义默认顺序表长度
	int MaxSize;                    //定义顺序表最大长度   
	int size;                       //定义顺序表当前长度
	Object[] ListArry;              //定义顺序表对象数组
	
	public DemoList () {            //类的默认构造方法 
		ListInit(DefaultSize);
	}
	
	public DemoList (int InputSize) {  //有参数时类的构造方法
		ListInit(InputSize);
	}
	
	private void ListInit (int ListSize) {  //顺序表初始化
		MaxSize = ListSize;
		this.size = 0;
		ListArry = new Object[ListSize];
	}
	
	public void ListInsert (int index, Object obj) {     //顺序表插入函数
		if(size == MaxSize)
			System.out.println("List is full!");
		if(index < 0 || index >= MaxSize)
			System.out.println("Location is wrong!");
		for(int i = size; i > index-1; i--) {
			ListArry[i] = ListArry[i-1];
		}
		ListArry[index-1] = obj;
		size++;
	}
	
	public Object ListLoc (int index) {     //查找特定位置的值
		if(index < 0 || index > size)
			System.out.println("Loc is wrong!");
		return ListArry[index-1];
	}
	
	public void ListDelete (int index) {     //删除指定位置的值
		if(index < 0 || index > size)
			System.out.println("Loc is wrong!");
		for(int i = index-1; i < size-1; i++)
			ListArry[i] = ListArry[i+1];
		size--;
	}
	
	public void ListPrint () {                       //打印线性表中的元素
		for(int i = 0; i < size; i++) {
			System.out.println("第" + i + "个数是:" + ListArry[i]);
		}
	}
	
	
	public static void main (String[] args) {
		Scanner scan = new Scanner(System.in);
		DemoList dl = new DemoList(20);
		int NumNode, num;
		
		System.out.print("Please Enter Num Of Node:");
		NumNode = scan.nextInt();
		
		for(int i = 0; i < NumNode; i++) {             //输入顺序表元素构建顺序表
			System.out.print("Please Enter num:");
			num = scan.nextInt();
			dl.ListInsert(i+1, num);
		}
		dl.ListPrint();
		
		int NumDelete;                                //删除顺序表中的特定位置的元素
		System.out.print("Please Enter a num for delete:");
		NumDelete = scan.nextInt();
		dl.ListDelete(NumDelete);
		dl.ListPrint();
		
		System.out.print("Please Enter a num for loc:");   //查询顺序表中的特定位置的元素
		int loc = scan.nextInt();
		System.out.println(dl.ListLoc(loc));
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值