近期复习数据结构就练练coding将几个重要数据结构类型的API写写
今日写顺序表,下面是其几个重要API
*1、初始化
*2、计算表长
*3、查找节点
*4、插入节
*5、删除节点
代码:
这是一个节点(Node)保存的内容:关键字key和附件熟悉name
package MySequentialList;
class Node{ //单个节点保存的信息 用来TEST
//每个节点有两个代表量
String key;
String name;
}
下面你是各个API的实现
package MySequentialList;
/*
* 线性表实现
*包括一般线性表的API
*1、初始化
*2、计算表长
*3、查找节点
*4、插入节点
*5、删除节点
* @author BrightenYim
* @Date 2015.3.16
*
*/
class SequentialList{//顺序表对象
static final int MAX=100;//数序表最长长度,index由(0--99)
Node[] SL = new Node[MAX]; //保存顺序表
int length;//保存现在线性表的有效表长
//1、初始化
void Init(){
length = 0;//线性表初始为空
}
//2、计算表长
int length(){
return length;
}
//3、查找节点
int Search( String key){// 根据Key来查找 返回index;
int i;
for(i = 0;i < length; i++){
if(SL[i].key.compareTo(key)==0){
return i; //找到就返回 index
}
}
return -1; // -1表示没有找到
}
Node Search(int n){ //按照index来查找节点内容 返回节点
if(n<0 || n>length){
System.out.println("操作失败,查找超出了顺序表范围!");
return null;
}
return SL[n];
}
//4、插入节点
int Insert(int n,Node node){ //在位置n插入节点node
if(length>=MAX){
System.out.println("顺序表已经满了,插入失败");
return 0;
}
if(n<0 || n>=MAX){
System.out.println("操作越界,插入失败");
return 0;
}
int i;
for(i = length-1;i>=n;i--){
SL[i+1]=SL[i];
}
SL[n]=node;
length=length+1;
return 1; //插入成功
}
//5、删除节点
int Delet(int n){
if(n<0 || n>length){
System.out.println("操作失败,查找超出了顺序表范围!");
return 0;// 0表示失败
}
int i;
for(i = n;i<length-1;i++){
SL[i]=SL[i++];
}
length=length-1;
return 1;//删除成功
}
}
欢迎大家拍砖~