读书笔记-数据结构C语言版

本文介绍了数据结构中的逻辑结构与物理结构,重点讨论了线性表的顺序存储和链式存储,包括线性表的操作、顺序存储结构的特点以及链式存储结构的优势。还提到了栈和队列作为线性表的特例,以及树形结构、二叉树的遍历方法。此外,文章还探讨了排序和查找算法,如折半查找、插入排序和快速排序等。
摘要由CSDN通过智能技术生成

数据元素之间的逻辑结构:集合,线性结构,树形结构,图形结构或网状结构

物理结构:顺序存储结构和链式存储结构

 

任何算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用的存储结构。

 

线性表n个数据元素的有限序列。称i为数据元素ai在线性表中的位序。线性表示一个相当灵活的数据结构,它的长度可根据需要增长或缩短,可访问/插入/删除。

线性表的顺序表示指的是一组地址连续的存储单元依次存储线性表的数据元素。由于每一个数据元素的存储位置都和线性表的起始位置相差了一个和数据元素在线性表中的位序成正比的常数,因此只要确定了存储线性表的起始位置,线性表中任一数据元素都可以随机存取,所以线性表的顺序存储结构是一种随机存储的存储结构。在顺序存储结构的线性表中插入或删除一个数据元素,平均约移动表中一半的元素,时间复杂度为On)。

为了方便插入和删除操作,引入线性表的链式存储结构,它不要求逻辑上相邻的元素也相邻,即这组存储单元可以是连续的也可以是不连续的,因此它没有顺序存储结构所具有的弱点,但同时也失去了顺序表可随机存取的优点。为了表示每个数据元素ai与其直接后继数据元素ai+1之间的逻辑关系,,对数据元素ai来说,除了存储其本身的信息之外(数据域),还需存储一个指示其直接后继的信息(即直接后继的存储位置)(指针域),这两部分信息合称为结点,n个结点链结成一个链表,最后一个结点的指针域为NULL.在单链表中,取得第i个数据元素必须从头指针出发寻找,因此,单链表是非随机存取的存储结构。

静态单链表:(类似一维数组的结构)假如有如上的静态链表S中存储这线性表(abcdefghi),Maxsize=11,要在第四个元素后插入元素e,方法是:先在当前表尾加入一个元素e,即:S[9].data = e;然后修改第四个元素的游标域,将e插入到链表中,即:S[9].cursor = S[4].cursor; S[4].cursor = 9;,接着,若要删除第8个元素h,则先顺着游标链通过计数找到第7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值