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

      

      

          

  • 相关阅读:
    part11-1 Python图形界面编程(Python GUI库介绍、Tkinter 组件介绍、布局管理器、事件处理)
    part10-3 Python常见模块(正则表达式)
    Cyclic Nacklace HDU
    模拟题 Right turn SCU
    状态DP Doing Homework HDU
    Dp Milking Time POJ
    区间DP Treats for the Cows POJ
    DP Help Jimmy POJ
    Dales and Hills Gym
    Kids and Prizes Gym
  • 原文地址:https://www.cnblogs.com/mathe/p/4462990.html
Copyright © 2011-2022 走看看