数据结构之链表

本文介绍了线性表的概念和基本操作,详细阐述了顺序表和链表两种存储结构,包括静态分配和动态分配、插入与删除操作的时间复杂度分析。同时,提到了单链表、双链表、循环链表以及静态链表等链式表示的特点,并对比了顺序表和链表在存取方式、逻辑与物理结构以及操作效率上的差异。
摘要由CSDN通过智能技术生成

线性表
定义:具有相同数据类型的n个数据元素的有限序列。即个数有限,逻辑上有顺序,表中元素为数据元素,且数据类型都相同即每个元素都占有相同的存储空间。

基本操作:ListInsert(&L,i,e):插入操作。ListDelete(&L,i,&e):删除操作。

顺序表:即线性表的顺序存储,用一组地址连续的存储单元,依次存储线性表中的数据元素,从而使逻辑相邻的两个元素在物理位置上也相邻。

地址分配方式可为静态分配和动态分配两种。
静态分配:数组的大小和空间事先已经固定,一旦空间占满,再加入新的数据将产生溢出,会导致程序崩溃。
动态分配:存储数组的空间是做程序执行过程中通过动态存储分配语句分配的。同样还属于顺序存储结构,其物理结构没有变化,依然是随机存取方式,只是分配的空间大小可以做运行时决定。

顺序表特点:随机访问,存储密度高,逻辑相邻的元素物理上也相邻。
顺序表的基本操作:
1)插入:
首先考虑非法数据的过滤:如果i输入不合法,则返回false,即i要在1到L.length之间且L.length不能大于最大尺寸Maxsize。
算法:bool ListInsert(SqList &L,int i,ElemType e){
//将元素e插入到顺序表L的第i个位置上
If(i<1||i>L.length)
Return false;
If(L.length>=MaxSize)
Return false;//过滤非法数据
For(int j=L.length;j>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值