数据结构--顺序表及实现(c语言)

本文探讨了顺序表这一线性表类型,强调其存储密度大和随机访问的优势,但也指出插入和删除操作可能导致的时间复杂度较高及空间浪费问题。此外,文章提供了C语言实现顺序表的代码,关注于插入和删除操作,并提到了错误处理的不足之处。
摘要由CSDN通过智能技术生成
  • 线性表是具有相同特性数据元素的一个有限序列。
  • 顺序表是线性表的一种,在逻辑结构上具有一对一关系,每一个结点有且只有一个前驱和后继结点,表头没有前驱结点,表尾没有后继结点
    在这里插入图片描述
  • 顺序表的优点
    1、存储密度大
    2、可以随机存取表中的任一元素,时间复杂度为O(1)
  • 顺序表的缺点
    1、在插入,删除的时候,需要移动大量的元素,时间复杂度为O(n^2)
    2、实际情况无法预知顺序表的容量大小,定义一个存储数组时,容易造成存储空间浪费
    3、属于静态存储形式,数据元素的个数不能自由扩充
  • 顺序表的代码实现(c语言,主要操作是删除和插入)
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10

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

//线性表的初始化
void InitSqList(SqList *L)
{
   
    L->data = (int*)malloc(sizeof(int)*MAXSIZE);
    if(L->data)
        printf("空间分配成功\n");
    L->length = 0;
}
//写入数据
void WriteSqList(SqList *L)
{
   
    for
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值