算法实习准备之一:数据结构复习(一)

本文是作者算法实习准备的数据结构复习笔记,重点介绍了数据结构的逻辑和物理结构,以及线性表中的顺序表和链表。顺序表在插入删除时可能需要移动大量元素,而链表通过指针实现快速插入删除。链表分为单链表和双链表,循环链表则是链表的一种变体。文章最后提到了后续的复习计划。
摘要由CSDN通过智能技术生成

数据结构复习(一)

毕业要求的小论文已经投出去啦,目前的任务就是复习算法基础知识准备实习,为了方便回顾内容和分享,我会将相关知识梳理并总结在csdn上~

基本概念

数据结构的三要素:逻辑结构、物理结构、数据运算。
逻辑结构:(线性结构)线性表、栈、队列(非线性结构)树、图、集合。
物理结构:顺序存储、链式存储、索引存储、散列存储。
1.顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元里,元素之间的逻辑关系由存储单元的邻接关系体现。
优点:可以实现随机存取。
缺点:只能使用相邻的一整块存储单元。
2.链式存储:不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针表示元素之间的逻辑关系。
优点:充分利用所有存储单元。
缺点:每个元素因存储指针而占用额外的存储空间,只能实现顺序存取。
3.索引存储:在存储元素信息的同时,建立附加的索引表。索引项的一般形式,(关键字,地址)。
优点:检索速度快。
缺点:附加的索引表占用较多的存储空间。
4.散列存储:根据元素的关键字计算元素的存储地址。
优点:检索、增加和删除结点的操作都很快。
缺点:可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

算法效率的度量

算法的五个重要特性:有穷性、确定性、可行性、输入和输出。
时间复杂度:最深层循环内语句的频度。
空间复杂度:存储空间、工作单元、辅助空间。

线性表

除了第一个元素外,每个元素有且仅有一个直接前驱。除了最后一个元素外,每个元素有且仅有一个直接后继。

顺序表(顺序存储)

顺序表的特点:表中的元素的逻辑顺序与其物理顺序相同。(因此插入和删除需要移动大量元素)
线性表插入、删除和查找的平均时间复杂度为O(n)。

ElemType data[MaxSize];
int length;

链表(链式存储)

单链表:除了存放元素自身的信息以外,还需要存放一个指向其后继的指针。

ElemType data;
struct LNode *next;

头结点和头指针的区别,不管带不带头

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值