zoukankan      html  css  js  c++  java
  • Java算法 -- 顺序表

    顺序表结构定义:就是按照顺序存储方式存储的线性表

     1 1.定义一个顺序表的基本数据:
     2  
     3 static final int MAXLEN = 100;
     4  
     5     Class Student{
     6     private String number; //学生学号
     7     private String name; // 学生姓名
     8     private int age; // 学生年龄
     9 }
    10  
    11     Class SLT{
    12     Student[] ListData = new Student[MAXLEN];  // 定义一个Student数组来存放学生
    13     int ListLen;     // 当前数组
    14 }
     
    2.对顺序表的操作
        **注意判断临界点的情况
    • 初始化顺序表
    • 获取顺序表的长度
    • 往顺序表内插入数据
    • 追加节点
    • 删除节点
    • 查找节点   1)查找节点   2)查找对应学号的节点
    • 显示所有节点
     1  // 1)初始化顺序表
     2     public void initSLT(SLT sl){
     3         sl.ListLen = 0;
     4 }    
     5    // 2)获取顺序表长度
     6 public int SLlength(SLT sl){
     7     return sl.ListLen;
     8 }    
     9    // 3)往顺序表中插入节点
    10     public boolean insertSLT(SLT sl , int n , Student stu){
    11     boolean judge = false;
    12     if(n<0 || n>sl.ListLen -1){
    13      SYSO("插入数据点位置编号不对");    
    14     return false;
    15 }    
    16        if(sl.ListLen > MAXLEN){
    17         SYSO("顺序表已经满了");
    18         return false;
    19 }
    20         for(int i=0;i<sl.ListLen-1;i++){
    21             if( i == n){
    22              //n+ 的部分往后移
    23             for(int j=sl.ListLen-1 ;j>n; j -- ){
    24              sl.ListData[j]  = sl.ListData[j-1];             
    25 }       
    26 }
    27 }      
    28     sl.ListData[n] = stu;            
    29     sl.ListLen ++;
    30     return true;
    31 }
    32    // 4)追加节点
    33      public boolean STLAdd(STL sl,Student stu){
    34    
    35     if(sl.ListLen > MAXLEN){
    36     SYSO("顺序表已满,不能添加");
    37     return false;
    38 }
    39        
    40     sl.ListData[sl.ListLen + 1 ] = stu;
    41  
    42 }
    43     
    44    // 5) 删除节点
    45    public boolean STLDelte(STL sl , int n ){  
    46      if(n<0 || n>sl.ListLen -1){
    47          SYSO("插入数据点位置编号不对");    
    48         return false;
    49     }    
    50     if(sl.ListLen<=0){
    51     SYSO("顺序表中没有数据可以删除");
    52     return false;
    53 }    
    54     for(int i=0;i<sl.ListLen-1;i++){
    55     if(i == n){
    56     for(int j=n;j<sl.ListLen;j++){
    57     sl.ListData[j]= sl.ListData[j+1]
    58 }
    59  
    60 }
    61     sl.ListLen --;
    62  
    63 }    
    64 }    
    65     // 6)查找节点
    66     public Data searchDataByNumber(STL sl , String number){
    67     int i;
    68     if(i=1 ;i<SL.ListLen;i++){
    69     if(sl.ListData[i].number.equal(number)){
    70     return sl.ListData[i];
    71 }else
    72     {
    73     return null;
    74 }
    75 }   
    76 }
    77    // 7)显示所有节点
    78        public void STLAll(STL sl){
    79         int i;
    80         for(i=0;i<sl.ListLen -1 ;i++){
    81         SYSO("输出书友节点的内容");
    82     }    
    83  
    84 }
     
  • 相关阅读:
    RSA
    DES
    MD5
    增删改查
    [转]数据绑定之DataFormatString
    分页通用存储过程(未验证)
    浅谈sql中的in与not in,exists与not exists的区别
    [转]order by 1是什么意思?
    bak骗子公司
    Performance Considerations for Entity Framework 4, 5, and 6
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/4404897.html
Copyright © 2011-2022 走看看