数据结构学习笔记——基本概念与基本的数据结构

本文介绍了数据结构中的基本概念,包括线性结构(数组、链表、栈、队列)、树结构(二叉树、二叉堆)以及图。讨论了算法的时间和空间复杂度,并通过实例分析了数组与链表的增删改查操作。最后,阐述了栈和队列的特性及其应用,推荐了《漫画算法-小灰的算法之旅》一书。

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

一、常用的三种数据结构

包括线性结构、树、图。

(1)线性结构又包括数组、链表,以及由他们衍生出来的栈、队列、哈希表等。

(2)树结构的典型代表是二叉树,以及衍生品二叉堆等。

(3)相对来说最复杂的数据结构,存在多对多的关联关系。

二、算法复杂性相关概念

(1)算法时间复杂度,表征的是基本操作执行次数。

(2)算法空间复杂度,算法在执行过程中所临时占用的存储空间的大小。

时间复杂度和空间复杂度都用大O表示法。也就是用简化的同数量级函数来表示。

注意:递归是用栈进行数据吞吐的,它所需要的内存空间与递归深度成正比,如果递归的深度是n,空间复杂度就是O(n)。通常情况下能用循环的要尽量避免用递归,其中道理以后再探究。

三、数组

(1)数组在内存中顺序存储。

(2)数组的操作有增、删、改、查四种情况。

(3)查:根据下标进行读取,时间复杂度为O(1)

(4)改:根据下标进行修改,时间复杂度为O(1)

(5)增:也就是插入操作,有尾部插入、中间插入和超范围插入。尾部插入直接放在数组尾部的空闲位置即可,等同于数组的改。中间插入,要先把插入位置及后面的元素向后移动,再把插入的元素放到对应的位置上。超范围插入,要先把数组扩容,书中讲到的是直接创建一个是旧数组长度两倍的新数组ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值