数据结构 - 第二章 线性表

本文详细介绍了线性表的概念,包括其基本运算和两种主要的存储方式——顺序存储和链式存储。顺序存储通过数组实现,便于随机访问但插入删除操作较复杂;链式存储利用指针链接数据,灵活增删但无法随机访问。讨论了单链表、双链表、循环链表以及静态链表的特点和应用场景。
摘要由CSDN通过智能技术生成

定义

线性表:由n个具有相同特性的数据元素的有限序列。(只能有一个前驱一个后继的数据结构。)

基本运算:初始化、判空、判满、表长、取出、查找、插入、删除。

向量(数组):相同类型数据元素组成的线性表。Loc(ai) = addr + i*sizeof(ElemType). 由于教材不同,ai的起始编号可能不同,熊岳山老师的书上是1,王道教材是0。

动态分配内存:运行时才确定所需内存空间大小,malloc(new)、free(delete)。

Operation
InitList(*L):
ListEmpty(L):
ClearList(*L):
GetElem(L,i,e):
LocateElem(L,e):
ListInsert(*L,i,e):
ListDelete(*L,i,*e):
ListLength(L):

 

顺序存储

顺序表:用一组地址连续的存储单元依次存储线性表中的数据元素,逻辑顺序与物理顺序相同。特点:可以随机访问数据元素,存储密度高,但不利于增减结点(需要移动元素),当线性表长度变化较大时,难以确定存储空间的容量,造成存储空间的“碎片"。

在任意时刻,线性表的长度应该小于数组的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值