数据结构 - 顺序线性表(C语言实现)

一. 线性表是具有相同特性数据元素的有限序列。
二. 线性表的顺序表示和实现:
  线性表的顺序表示指的是用一组地址连续的存储单元一次存储线性表的数据元素。换句话说,以元素在计算机内”物理位置相邻“来表示线性表中数据元素之间的逻辑关系。每一个数据元素的储存位置都和线性表的起始位置相差了一个和数据元素在线性表中的位序成正比的常数。

  • 顺序表的优点:查找数据比较灵活,时间复杂度仅为O(1)。
  • 顺序表的缺点:对顺序表进行添加、删除元素操作比较麻烦,需要移动大量的元素,对于有n个元素的顺序表,插入和删除元素的平均时间复杂度为O((n-1)/2)。
  1. 定义

    #define ListInitSize	5	//线性表分配的初始容量 
    
    typedef struct{
    	int *elem;		//储存空间基地址 
    	int length;		//当前长度 
    	int ListSize;	//当前分配的容量 
    }List;
    

      我们用一个结构体来存储线性表,顺序线性表的结构体里面包括存储空间基地址、线性表当前的长度以及当前分配的容量。

  2. 创建线性表

    int ListCreat(List *L){
    //构造一个空的线性表 
    L->elem = (int *)malloc(ListInitSize*sizeof(int));
    if(!L->elem)	exit(-1);	//存储分配失败 
    L->length = 0;				//当前长度为0 
    L->ListSize = 
  • 17
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值