常用数据结构增删改查java实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一,顺序表:*************************************************************** /**

* 顺序表

* @author WangGuiXi

* 2015年11月9日

*/

publicclass Sequence {

publicstaticvoid main(String args[]){

SLType sl = new SLType();

System.out.println("顺序表操作...");

Scanner input = new Scanner(System.in);

while(true){

Data data = new Data();

System.out.println("1,请输入顺序表数据(id name age):");

data.id = input.nextInt();

if(data.id != 0){

//插入数据

= input.next();

data.age = input.nextInt();

sl.append(sl, data);

}else{

break;

}

}

System.out.println("2,插入数据,请输入插入位置:");

int iid = input.nextInt();

System.out.println("3,请输入插入数据内容(id name age):");

Data insData = new Data();

insData.id = input.nextInt();

= input.next();

insData.age = input.nextInt();

sl.insert(sl, insData, iid);

//显示所有结点

System.out.println("=========== 所有结点 ===========");

sl.show(sl);

//查询结点

System.out.println("4,请输入要查询的结点id:");

int sid = input.nextInt();

Data data = sl.get(sl, sid, null);

if(data != null){

System.out.printf("查询到数据:%d %s %d\n", data.id, , data.age);

}

System.out.println("5,请输入查询结点的name关键字:");

String name = input.next();

Data data2 = sl.get(sl, 0, name);

if(data2 != null){

System.out.printf("查询到数据:%d %s %d\n", data2.id, , data2.age);

}

System.out.println("6,请输入删除结点id:");

int did = input.nextInt();

boolean reVal = sl.del(sl, did);

if(reVal){

System.out.println("删除成功!结点数据如下:");

sl.show(sl);

}

}

}

/**

* 顺序表

* @author WangGuiXi

*

*/

class SLType{

int MAXLEN = 100;

Data[] listData = new Data[MAXLEN + 1];

int currLen = 0;

/**

* 追加数据

* @param sl

* @param data

*/

publicboolean append(SLType sl, Data data){

if(currLen>= MAXLEN){

System.out.println("顺序表已满,添加结点失败!");

returnfalse;

}

sl.listData[++currLen] = data;

//System.out.printf("ok! %d %s %d\n", data.id, , data.age);

returntrue;

}

/**

* 在id后插入数据

* @param sl

* @param data

* @param id

* @return

*/

publicboolean insert(SLType sl, Data data, int id){

if(id< 1 || id>currLen){

System.out.println("非法的结点id");

returnfalse;

}

if(id>= MAXLEN){

System.out.println("数组越界!");

returnfalse;

}

for(int i = currLen; i>= id; i--){

sl.listData[i + 1] = sl.listData[i];

}

sl.listData[id] = data;

currLen++;

returntrue;

}

/**

* 显示数据

*/

publicvoid show(SLType sl){

for(int i = 1; i<= currLen; i++){

System.out.printf("%d %s %d\n", sl.listData[i].id, sl.listData[i].name, sl.listData[i].age);

}

}

/**

* 删除数据

*/

publicboolean del(SLType sl, int id){

if(id< 1 || id>currLen){

System.out.println("id不正确!");

returnfalse;

}

for(int i = id; i<= currLen; i++){

sl.listData[i] = sl.listData[i + 1];

相关文档
最新文档