C++ 数据结构基础——线性表【线性存储结构】(一)

目录

线性表,全名为线性存储结构。

根据存储结构:顺序存储结构 和 链式存储结构。

如何使用顺序表

step 1. 申请物理空间

step 2. 初始化顺序表

step 3. 调用


http://c.biancheng.net/view/3334.html

线性表,全名为线性存储结构

使用线性表存储数据的方式可以这样理解,即“把所有数据用一根线儿串起来,再存储到物理空间中”。

根据存储结构:顺序存储结构 和 链式存储结构。

如何使用顺序表

step 1. 申请物理空间

  1. 申请足够大小的物理空间; 
  2. 顺序表申请的存储容量;【为了方便后期使用表中的数据】
  3. 顺序表的长度,也就是表中存储数据元素的个数;【为了方便后期使用表中的数据】
typedef struct Table{
    int * head;    //声明了一个名为head的长度不确定的数组,也叫“动态数组”
    int length;    //记录当前顺序表的长度
    int size;        //记录顺序表分配的存储容量
}table;

step 2. 初始化顺序表

只要主函数调用 initTable 语句,就可以成功创建一个空的顺序表。即 table t = initTable();

#define Size 5 //对Size进行宏定义,表示顺序表申请空间的大小
table initTable(){
    table t;
    t.head=(int*)malloc(Size*sizeof(int));//构造一个空的顺序表,动态申请存储空间
    if (!t.head) //如果申请失败,作出提示并直接退出程序
    {
        printf("初始化失败");
        exit(0);
    }
    t.length=0;//空表的长度初始化为0
    t.size=Size;//空表的初始存储空间为Size
    return t;
}

step 3. 调用

#include <stdio.h>
#include <stdlib.h>
#define Size 5
typedef struct Table{
    int * head;
    int length;
    int size;
}table;
table initTable(){
    table t;
    t.head=(int*)malloc(Size*sizeof(int));
    if (!t.head)
    {
        printf("初始化失败");
        exit(0);
    }
    t.length=0;
    t.size=Size;
    return t;
}
//输出顺序表中元素的函数
void displayTable(table t){
    for (int i=0;i<t.length;i++) {
        printf("%d ",t.head[i]);
    }
    printf("\n");
}
int main(){
    table t=initTable();
    //向顺序表中添加元素
    for (int i=1; i<=Size; i++) {
        t.head[i-1]=i;
        t.length++;
    }
    printf("顺序表中存储的元素分别是:\n");
    displayTable(t);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值