zoukankan      html  css  js  c++  java
  • 顺序表2种结构体构造方法

    昨天上课讲到了顺序表的结构体在构造时候可以应用指针做数据成员,而不需要定义一个数组,那么具体方法是这样的:

    typedef struct{
        int *data;
        int length;
    }SqList;

    这种方式构造顺序表,data项不用数组,这样可以动态生成,不浪费空间,但是data是个指针,怎么表示多个连续的数据呢,所以他的CreateSqlist写法是

    void CreateSqList(SqList &L)
    {
        int i,node,n;
        cin>>n;
        L.data=new int[n];//动态申请分配n个int内存空间
        for(i=0;i<n;i++)
        {
              cin>>node;
              L.data[i]=node;  //可以用下标法表示元素。
        }
        L.length=n;
    }

    顺序表L中data申请内存空间可以用new方法动态申请n个连续的int空间内存,这样后面表示data中某个数据元素,也可以用下标法表示,就是:

    L.data[i]
     

    再看看main方法:

    int main()
    {
    SqList L; //不需要定义指针类型,操作更方便。
    CreateSqList(L) ;
    DispSqList(L); 
    } 

    和课本的顺序表方法定义,我们比较下:

    typedef struct{
    int data[MAXSIZE]; //数组开始明确指定元素个数,会浪费空间
    int length;
    }SqList;
    void CreateSqList(SqList *&L)
    {
    int i,node,n;
    L=(SqList *)malloc(sizeof (SqList));
    cin>>n;
    for(i=0;i<n;i++)
    {
    cin>>node;
    L->data[i]=node;
    }
    L->length=n;
    }
    int main()
    {
    SqList *L; 
    CreateSqList(L) ;
    DispSqList(L); 
    }
    View Code
  • 相关阅读:
    Object Modeling
    数据库的比较
    关系数据库与非关系数据库
    结构化查询语言-SQL
    SQLite
    acid (数据库事务正确执行的四个基本要素的缩写)
    UITableView设计思想 考察
    复杂软件的考虑点与UITableView
    设计模式与哲学
    复杂对象的组装与创建-建造者模式
  • 原文地址:https://www.cnblogs.com/linli069/p/6557849.html
Copyright © 2011-2022 走看看