zoukankan      html  css  js  c++  java
  • 数据结构----顺序表

    1.顺序表的定义

    static final int MAXLEN=100;                              //定义顺序表的最大长度
    
    class DATA
    {
        String key;                                      //结点的关键字
        String name;
        int age;
    }
                                                              //定义结点
    class SLType                                            //定义顺序表结构
    {
        DATA[] ListData = new DATA[MAXLEN+1];                 //保存顺序表的结构数组
        int ListLen;                                                    //顺序表已存结点的数量
    }
    

    2.初始化顺序表

    void SLInit(SLType SL)                        //初始化顺序表
    {
        SL.ListLen=0;                                //初始化为空表
    }
    

    3.计算顺序表长度

    int SLLength(SLType SL)
    {
        return(SL.ListLen);            //返回顺序表的元素数量
    }
    

    4.插入结点

    int SLInsert(SLType Sl,int n,DATA data)
    {
        int i;
        if(SL.ListLen>=MAXLEN)                                  //顺序表结点数量已超过最大数量
        {
            System.out.print("顺序表已满,不能插入结点!
    ");
            return 0;                                                //返回0表示插入不成功
        }
        if(n<1||n>SL.ListLen-1)                                  //插入结点序号不正确
        {
            System.out.print("插入元素序号错误,不能插入元素!
    ");
            return 0;
        }
        for(i=SL.ListLen;i>=n;i--)                               //将顺序表中的数据向后移动
        {
            SL.ListData[i+1]=SL.ListData[i];
        }
        SL.ListData[n]=data;                                       //插入结点
        SL.ListLen++;                                              //顺序表结点数量增加1
        return 1;                                                    //成功插入,返回1
    }
    

    6.追加结点

    int SLAdd(SLType SL,DATA data)            //增加元素到顺序表尾部
    {
        if(SL.ListLen>=MAXLEN)                    //顺序表已满
        {
            System.out.print("顺序表已满,不能再添加结点了!
    ");
            return 0;
        }
        SL.ListData[++SL.ListLen]=data;
        return 1;
    }
    

    7.删除结点int SLDelete(SLType SL,int n) //删除顺序表中的数据元素

    {
        int i;
        if(n<1||n>SL.ListLen+1)          //删除结点序号不正确
      {
        System.out.print("删除结点序号错误,不能删除结点! ");
        return 0;
      }
      for(i=n;i<SL.ListLen;i++)          //将顺序表中的数据向前移动
      {
        SL.ListData[i]=SL.ListData[i+1];
      }
      SL.ListLen--;                //顺序表元素数量减1
      return 1;
    }

    8.按照序号查找结点

    DATA SLFindByNum(SLType SL,int n)
    {
        if(n<1||n>SL.ListLen+1)
        {
            System.out.print("结点序号错误,不能返回结点!
    ");
            return 0;
        }
        return SL.ListData[n];
    }
    

    9.按照关键字查找结点

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

    10.显示所有结点

    int SLAll(SLType SL)
    {
        int i;
        for(i=1;i<=SL.ListLen;i++)
        {
            System.out.print("(%s,%s,%d)
    ",SL.ListData[i].key,SL.ListData[i].name,SL.ListData[i].age);
        }
    }
    

      

      

          

  • 相关阅读:
    JavaScript replace() 方法
    vs2010注册码 激活方法
    Javascript 返回上一页
    错误:该行已经属于另一个表
    Oracle10g中如何分析响应时间
    Oracle Purge和drop的区别
    Oracle 的 Sql*Plus 常用命令介绍【转】
    如何实现oracle不同版本间数据的导入导出
    如何绑定变量使用
    Oracle PGA 介绍
  • 原文地址:https://www.cnblogs.com/mathe/p/4462990.html
Copyright © 2011-2022 走看看