zoukankan      html  css  js  c++  java
  • 数据结构与算法2——线性顺序存储

      线性表顺序结构,非链式:

                 包含两个部分:

              1.数组内存放的是要存储的数据,同时给出最大容量

                                       2.最后一个数据的下标,由此可知实际存储的数据总数。

    结构体描述:

    typedef struct()
        {
          double data[max];//最多能存储的总数,表的最大容量
          int last;//last 是实际存储数据的最后一个的下标;  
        }List;
    
    List *Ptrl;
    Ptrl->last+1 是存储的数据总数,即表的实际长度

     

        数据表效果如图,要注意第几个数与下标之间的+1关系,避免代码出错:

           

        建立空表函数,注意申请内存需要强制转换,否则是空指针的结构

    List *Makeempty()
    {
        List *Ptrl;
        Ptrl=(List *)malloc(sizeof(List));
        Ptrl->last=-1;//空表
        return Ptrl;        
    
    }

        查找数据函数

    int find(double x,List *Ptrl)
    {  int i=0;
       while(Ptrl->data[i]!=x && i<=Ptrl->last)
          i++;
       if(i>Ptrl->last) return -1;
       else return i;
    }

        

        插入函数,插入第i(1<=i<=last+2)个数据,即可以在下标0--last+1的位置上插入:

    void add(double x,int i, List *Ptrl)
    {  
        int j;
        if(Ptrl->last==max-1) {printf("full"); return;}//表内已经有max个数据
        if(i<1 || i>Ptrl->last+2) {printf("error"); return;}//只能插入第1个数到last+2个数
        for(j=Ptrl->last; j>=i-1; j--)
           Ptrl->data[j+1]=Ptrl->last[j];
           ptrl->data[i-1]=x;
           Ptrl->last++;//存储实际数据个数加1,下标加1,注意更新数据总数
         return;
    }            

             

        删除函数,删除第i个(1<=i<=last+1)数据,即可以删下标0-last的数据

    void delete(int i,List *Ptrl)
    {    int j;
            if(Ptrl->last==-1) {printf("empty"); return;}
             if(i<1||i>Ptrl->last+1) {printf("error"); return;}
        for(j=i-1;j<Ptrl->last;j++)
            Ptrl->data[j]=Ptrl->data[j+1];
        Ptrl->last--;//实际存储数据个数-1,下标-1,注意更新数据总数
        return;
    }
  • 相关阅读:
    搭建nexus私服(maven)
    maven配置本地仓库(从本地仓库下载jar包到.m2仓库)
    关于引入多个jquery冲突的问题(附一个很好用的validate前端验证框架及使用方法)
    java excel导出
    Eclipse+Maven创建webapp项目 及部署在tomcat上
    solr添加IK分词和自己定义词库
    将Mysq数据导入solr索引库
    solr +zookeeper+Jetty 集群搭建
    solr +zookeeper+tomcat 集群搭建
    如何用Maven创建web项目(具体步骤)转载
  • 原文地址:https://www.cnblogs.com/guoshiyv/p/7045915.html
Copyright © 2011-2022 走看看