数据结构复习(重写某些重要数据结构API) ------------MySequentialList(顺序表)

近期复习数据结构就练练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;//删除成功
    }

}

欢迎大家拍砖~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值