算法与数据结构-数组/链表

 我来答
科创17
2022-06-21 · TA获得超过5933个赞
知道小有建树答主
回答量:2846
采纳率:100%
帮助的人:179万
展开全部
数组是指有序的元素序列。如果将有限个类型相同的变量的集合命名,那么这个名称就是数组名,而组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

1.数组是相同数据类型的元素的集合。
2.数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3.数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

1.下标从0开始
2.随机访问

插入删除操作效率低:插入新元素时,新申请空间,移动元素再插入、使用尾插法效率高,但不一定能满足实际业务需求;删除操作类似。

1.注意下标越界问题。
2.扩容/缩容问题

链表通过指针将一组零散的内存块串联在一起,我们把内存块称为链表的节点,为了将所有的节点串起来,每个链表的节点除了存储数据之外,还需要记录链上的下一个节点的地址

(1)不需要连续的内存空间;
(2)有指针引用;
(3)三种常见的链表结构:单链表、双向链表和循环链表

1.设计一个LRU缓存淘汰算法——最近最少使用
解法:维护一个有序的单链表,加入时间排序。将链表遍历,如果找到了,删掉,然后插入头部,头部就是最新的;如果不存在,如果有空间,就插入头部,LRU有内存限制,如果空间没有了,删除最后一个,完成了算法。
2.约瑟夫问题:类似丢手绢;所有人围成一圈,开始点数,点到谁,谁退出;
解法:待更新
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式