顺序表的输入输出

该文章描述了如何使用C语言创建一个线性表结构(SqList),包括定义结构体,初始化线性表,动态分配内存,使用memset进行初始化。接着,文章展示了如何输入数据到线性表中以及输出线性表的所有元素。主要涉及数据结构和基本的内存管理操作。
摘要由CSDN通过智能技术生成

步骤:创建->初始化->输入->输出

一.创建

  1. 头文件

  1. 定义MAXSIZE大小(即后面数组的大小)

  1. 定义有意义的ERROR,FALSE=0,OK,TURE=1

  1. 定义一些有意义的int

  1. 整合数据项:不同的数据项存入结构体并自定义数据类型的名称

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;//Status相当于int
typedef int ElemType;
typedef struct
{
    ElemType data[MAXSIZE];
    int length;
}SqList;

二.初始化

需要返回一个指针

  1. 初始化指针=NULL

  1. 动态分配内存

  1. 判断是否分配成功:指针是否=NULL

  1. memset函数:将指针,数据元素,内存空间的值设为0

memset函数为初始化函数,可以将一段连续的内存初始化为某个值。但它是以字节为单位进行初始化的。memset函数的一般使用格式为memset(首地址或头指针,值,sizeof(地址总大小));比如对数组a赋值memset(a,0,sizeof(a))

//初始化一个线性表
SqList* ListInit()
{
    SqList* L = NULL;//初始化指针
    L = (SqList*)malloc(sizeof(SqList));//动态分配空间,返回一个指向这块内存的指针
    if (!L)//判断空间分配是否成功
    {
        printf("顺序表空间分配失败!\n");
        return NULL;
    }
    memset(L, 0x00, sizeof(SqList));//初始化线性表指针,数据,内存空间
    return L;
}//返回一个头指针

三.输入

在主函数中操作

  1. 初始化表函数

  1. 依次访问结构体成员输入数值

  1. 输出函数

//赋值
int main()
{
    SqList* L = ListInit();
    printf("请输入顺序表的五个元素:\n");
    int i = 0;
    for (i = 0;i < 5;i++)
    {
        scanf("%d",& L->data[i]);
    }
    L->length = 5;
    printf("打印输出当前顺序表的元素:\n");
    ListTraverse(L);//输出
    return 0;
}

四.输出

  1. 判断输入长度是否为0,是->返回ERROR

  1. 取出长度成员参与输出循环

  1. 返回OK

//依次输出数据元素
Status ListTraverse(SqList* L)
{
    if (L->length == 0)
    {
        printf("这是一个空数据表\n");
        return ERROR;
    }        
    int i = 0;
    for (i = 0;i < L->length;i++)
    {
        printf("%d ", L->data[i]);
    }
    return OK;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值