• 顺序表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
  • 相关阅读:
    Bootstrap学习笔记系列2-------Bootstrap简单表格处理
    Bootstrap学习笔记系列1-------Bootstrap网格系统
    前端代码规范
    Dev TreeList设置焦点失败解决方法
    las数据集加载las数据
    c# 文件另存为代码
    Dev 饼图
    ASP.NET MVC Json的序列化和反序列化
    服务器重启后导致访问ArcServer地图服务须登录
    jQuery回调函数
  • 原文地址:https://www.cnblogs.com/linli069/p/6557849.html
Copyright © 2020-2023  润新知