顺序表的建立删除 java源码

更新时间:2023-12-18 07:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

package 数据结构;

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; }

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

System.out.println(\插入序号有误,不能插入节点\);

return 0; }

//将顺序表中的数据向后移动

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

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

SL.ListData[n] = data; SL.ListLen++; return 1; }

//追加节点

int SLAdd(SLType SL,DATA data){ if(SL.ListLen>=MAXLEN){

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

return 0; }

SL.ListData[++SL.ListLen]=data; return 1; }

//删除节点

int SLDelete(SLType SL,int n ){ int i;

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

System.out.println(\序号输入有误,不能插入节点\);

return 0; }

//往前挪

for(i = n ; i

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

SL.ListLen--; return 1; }

//查找节点

DATA SLFindByNum(SLType SL,int n){ if(n<1||n>SL.ListLen+1){

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; }

//显示所有节点

int SLAll(SLType SL){ int i;

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

System.out.println(SL.ListData[i].key+\+SL.ListData[i].name+\+SL.ListData[i].age); }

return 0; } }

public class sqelist { public static void main(String[] args) { // TODO 自动生成的方法存根 int i;

SLType SL=new SLType(); //定义顺序表变量

DATA pdata; //定义结点保存指针变量

String key; //保存关键字

System.out.print(\顺序表操作演示!\\n\);

SL.SLInit(SL); //初始化

顺序表

System.out.print(\初始化顺序表完成!\\n\);

Scanner input=new Scanner(System.in);

do

{ //循环添加结点数据

System.out.print(\输入添加的结点(学号 姓名 年龄):\);

DATA data=new DATA(); data.key=input.next(); data.name=input.next(); data.age=input.nextInt();

if(data.age!=0) //若年龄不为0

{

if(SL.SLAdd(SL,data)==0) //若添加结点失败

{

break; //退出死循环

} }

else //若年龄为0 {

break; //退出死

本文来源:https://www.bwwdw.com/article/2gv5.html

Top