- 2
- 0
- 约4.44千字
- 约 8页
- 2026-07-22 发布于河北
- 举报
计算机通用面试真题及详细答案(零基础/校招/初级岗适用)
一、计算机基础知识
1、简述堆栈和队列的区别,实际项目中分别用过什么场景?
答案:
核心区别就是存取规则不同:栈是后进先出(LIFO),队列是先进先出(FIFO)。
栈只在一端(栈顶)做入栈、出栈操作,另一端固定封闭;队列是两端操作,一端入队,一端出队。
实际场景:
栈:程序方法调用栈、浏览器后退功能、括号匹配校验、表达式求值。
队列:消息队列削峰、任务排队执行、线程池任务队列、接口请求排队。
2、数组和链表的区别,各自优缺点?
答案:
数组是连续内存存储,链表是离散内存、通过指针/引用串联。
数组优点:随机访问速度快,根据下标可以直接取值;内存连续、缓存利用率高。
数组缺点:固定长度,扩容麻烦;插入、删除元素需要移动大量数据,效率低。
链表优点:动态扩容,没有长度限制;插入、删除只需要修改指针指向,不需要移动数据,效率高。
链表缺点:不支持随机访问,查找元素必须从头遍历;每个节点额外占用指针内存,内存开销大。
3、什么是时间复杂度和空间复杂度?常见的复杂度排序?
答案:
时间复杂度:用来估算代码执行的运算次数,衡量代码运行快慢,只看最高次项,忽略常数。
空间复杂度:估算代码执行过程中额外占用的内存空间,不包含原始输入数据。
常见复杂度从小到大:O(1)O(logn)O(n)O(nlogn)O(n2)O
原创力文档

文档评论(0)