数据结构与算法:线性表

回顾数据结构与算法的时候,发现好多都忘了,于是决定整理一下;
线性表是n个数据元素的有限序列。
特点:
1.集合中必存在唯一的一个“第一元素”;
2.集合中必存在唯一的一个 “最后元素”;
3.除最后元素之外,均有 唯一的后继;
4. 除第一元素之外,均有 唯一的前驱。
基本操作:
初始化:构造一个空的线性表。
销毁:销毁一个已存在的线性表。
插入:第i个位置之前插入一个新元素。
删除:删除线性表中的第i个数据元素。
更新:更新第i个数据元素。
查找:找出线性表中满足特定条件的元素的位置
获取:取线性表中的第i个数据元素
判空:判断当前线性表是否为空
求长度:求出线性表中数据元素的个数
正序遍历:依次访问线性表中每个元素并输出

一;线性表的顺序表示:

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。通常称这种存储结构的线性表为顺序表。
常见操作:
1.初始化

//无参构造方法
public sequenceList ( )  
{
   
	length=0;  //线性表初始为空
	listArray=(T[])new Object[maxSize];
}
//有参构造方法
public sequenceList (int n ) 
{
   
    	if(n<=0){
   
 		   System.out.println("error");
 		   System.exit(1);
 		}
 	length=0;  //线性表初始为空
 	listArray=(T[])new Object[n];	
}

2.顺序表的插入

public boolean add(T obj,int pos) 
{
   
    	if(pos<1||pos>length+1){
   
		System.out.println("pos值不合法");
		return false;
		}
		//先判断顺序表数组空间状态,如果顺序表数组空间已经存满,重新分配存储空间
if(length==listArray.length){
   
 	T[] p=(T[])new Object[length*2];
 	for(int i=0;i<length;i++)
 		p[i]=listArray[i];
 	listArray=p;   
       }
 	for(int i=length;i>=pos;i--)
 		    listArray[i]=listArray[i-1];
 	listArray[pos-1]=obj;   
 	length++;
 	return true;
}

3.顺序表的删除

public T remove(int pos) 
{
   
	if(isEmpty()){
   
	System.out.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值