数据结构:线性表(顺序表,链表)

本文详细介绍了数据结构中两种基本线性表——顺序表和链表的特点与应用。包括它们的不同存储方式、优缺点对比及适用场景。帮助读者更好地理解这两种数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学数据结构的时候,没有认真学习,有点不太会,最近准备重拾一下。

常见的线性表:顺序表、链表、栈、队列、字符串...,

顺序表和链表都逻辑结构上连续,链表物理结构上不连续,顺序表物理结构上连续

1.顺序表

顺序表分为,静态顺序表和动态顺序表。

静态顺序表:定长数组存储。

动态顺序表:动态开辟储存。

2.链表

可以根据,有无头结点,循环不循环,单向还是双向,分为八种。

// 顺序表的静态存储
#define N 8
typedef int SLDataType;
typedef struct SeqList{
    SLDataType array[N]; // 定长数组
    size_t size; // 有效数据的个数
}SeqList;
 
 
 
typedef int SLDataType;
// 顺序表的动态存储
typedef struct SeqList{
    SLDataType* array; // 指向动态开辟的数组
    size_t size ; // 有效数据个数
    size_t capacity ; // 容量空间的大小
}SeqList;

//单链表的定义 
typedef int SLTDataType;
typedef struct SListNode
{
	SLTDataType _data;
	struct SListNode* _next;
}SListNode;
typedef struct SList
{
	SListNode* _head;
}SList; 

顺序表

优点:
空间连续、支持随机访问

缺点:
1.中间或前面部分的插入删除时间复杂度O(N)
2.增容的代价比较大。(需要开辟一个新的地址)

链表 
优点:
1.任意位置插入删除时间复杂度为O(1)
2.没有增容问题,插入一个开辟一个空间。

缺点:
以节点为单位存储,不支持随机访问
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值