线性结构

数组

1.数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据
2.数组的优点是可以通过下标值随机访问数组内的任何元素,算法复杂度是 O(1)
3.缺点是删除/插入元素比较费劲,以删除为例,需要在删除某个元素后,将后续元素都往前移一位,如果是插入,则需要将插入位置之后的元素都往后移,所以对数组的插入/删除而言,算法复杂度是 O(n)

链表

1.链表并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用
2.单链表中有两个节点比较特殊,分别是第一个结点和最后一个结点。我们通常把第一个结点叫作头结点,把最后一个结点叫作尾结点。其中,头结点用来记录链表的基地址,有了它,我们就可以遍历得到整条链表。而尾结点特殊的地方是:指针不是指向下一个结点,而是指向一个空地址 NULL,表示这是链表上最后一个结点。对单链表而言,理论上来说,插入和删除节点的时间复杂度是 O(1),查询节点的时间复杂度是 O(n)
3.双向链表除了有一个指向下一个节点的指针外,还有一个用于指向上一个节点的指针,从而实现通过 O(1) 复杂度找到上一个节点,双向链表始终需要单链表的两倍空间

队列

1.队列也是一中特殊的线性表结构,只不过队列是在一端插入,另一端删除,就跟我们平常排队一样的道理,从队尾入队,在队头出去,所以队列的特性是先入先出(FIFO),允许插入的一端叫队尾,允许删除的一端叫队头。
2.通过数组实现的叫顺序队列,通过链表实现的叫做链式队列
3.队列需要两个指针,一个指向队头,一个指向队尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值