线性表增删查改java_【每日算法】用代码实现对顺序表的增删查改

import java.util.Scanner;

class DATA{

//节点的关键字

String key;

String name;

int age;

}

//定义顺序表结构

class SLType{

static final int MAXLEN=100;

DATA[] ListData=new DATA[MAXLEN+1];//保存顺序表的结构数组

int ListLen;//保存的节点数量

//初始化顺序表

void SLInit(SLType SL){

SL.ListLen=0;//初始化为空表

}

//获取顺序表的长度

int SLLength(SLType SL){

return (SL.ListLen);//返回顺序表的元素数量

}

//插入节点

int SLInsert(SLType SL,int n,DATA data){

int i;

if(SL.ListLen>=MAXLEN){//长度大于最大长度不能进行插入

System.out.println("顺序表已满,不能插入节点!");

return 0;//返回插入失败

}

//插入元素位置的范围在[1,SL.ListLen]

if(n<1||n>SL.ListLen){

System.out.println("插入元素序号错误,不能插入元素!");

}

//将顺序表中从插入位置n开始的数据向后移动

for(i=SL.ListLen;i>=n;i--){

SL.ListData[i+1]=SL.ListData[i];

}

SL.ListData[n]=data;//插入节点

SL.ListLen++;//顺序表长度+1

return 1;//返回插入成功

}

//添加节点

int SLAdd(SLType SL,DATA data){

if(SL.ListLen>=MAXLEN){//长度大于最大长度不能进行添加

System.out.prinln("顺序表已满,不能再添加节点了!");

return 0;//返回添加失败

}

//添加元素的同时表长度也要+1

SL.ListData[++SL.ListLen]=data;

return 1;//返回添加成功

}

//删除节点

int SLDelete(SLType SL,int n){

int i;

if(n<1||n>SL.ListLen){//删除节点序号不正确

System.out.println("删除节点错误,不能剔除节点!");

return 0;//返回删除失败

}

//数据前移

for(i=n;i

SL.ListData[i]=SL.ListData[i+1];

}

SL.ListLen--;//表长度-1

return 1;//返回删除成功

}

//根据序号返回数据元素

DATA SLFindByNum(SLType SL,int n){

if(n<1||n>SL.ListLen){

System.out.println("节点序号错误,不能返回节点!");

return null;//返回数据失败

}

return SL.ListData[n];

}

//按关键字查询节点

int SLFindByCont(SLType SL,String key){

int i;

for(i=1;i<=SL.ListLen;i++){

//找到需要的节点,返回节点序号

if(SL.ListData[i].key.compareTo(key)==0){

return i;

}

}

return 0;

}

//显示顺序表中的所有节点

void SLAll(SLType SL){

int i;

for(int i=1;i<=SL.ListLen;i++){

System.out.println(SL.ListData[i].toString());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值