C++ 数据结构基础面试题

1. 数组和链表的区别是什么?

答案:

  • 存储方式数组:连续内存空间链表:非连续内存,通过指针连接
  • 访问方式数组:随机访问O(1)链表:顺序访问O(n)
  • 插入删除数组:O(n),需要移动元素链表:O(1),只需修改指针
  • 内存占用数组:固定大小,可能浪费链表:动态分配,额外存储指针
  • 缓存友好性数组:连续内存,缓存友好链表:分散内存,缓存不友好

2. 栈和队列的区别?如何实现?

答案:

  • 特点栈:后进先出(LIFO)队列:先进先出(FIFO)
  • 操作栈:push(入栈)、pop(出栈)、top(查看栈顶)队列:push(入队)、pop(出队)、front(查看队首)
  • 数组实现栈维护一个top指针push:top++,存入元素pop:返回元素,top--
  • 数组实现队列维护front和rear指针循环队列避免空间浪费push:rear++pop:front++
  • 链表实现栈:头插法队列:头删尾插

3. 什么是哈希表?如何解决冲突?

答案:

  • 哈希表定义通过哈希函数将键映射到数组索引平均O(1)的查找、插入、删除空间换时间
  • 哈希函数将键转换为数组索引要求:均匀分布、计算快速、确定性
  • 冲突解决链地址法(Chaining)每个位置存储链表冲突元素加入链表STL的unordered_map使用此方法开放地址法(Open Addressing)线性探测:顺序查找下一个空位二次探测:按平方数探测双重哈希:使用第二个哈希函数
  • 负载因子元素数量/桶数量过高时需要rehash扩容

4. 二叉树的遍历方式有哪些?

答案:

  • 前序遍历(Pre-order)根 → 左 → 右递归或栈实现
  • 中序遍历(In-order)左 → 根 → 右二叉搜索树中序遍历是有序的
  • 后序遍历(Post-order)左 → 右 → 根适合释放节点
  • 层序遍历(Level-order)逐层遍历使用队列实现
  • 递归实现
void inorder(TreeNode* root) {    if (!root) return;    inorder(root->left);    cout << root->val;    inorder(root->right);}
  • 迭代实现
void inorder(TreeNode* root) {    stack<TreeNode*> s;    TreeNode*

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++ 常考面试题总结 文章被收录于专栏

本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.

全部评论
看到了很基础的知识
点赞 回复 分享
发布于 02-19 22:38 河南

相关推荐

头像
02-11 22:20
已编辑
门头沟学院 数据仓库
起因是之前我有一个实习公司的部门每天要处理大量第三方爬取过来的非结构化数据,对非结构化数据进行数据加工,对他们按产品类别分类,剔除一些与我们公司产品不相关的数据,并且将他们转变为结构化数据,写入数据库,这个过程具有高度重复性,且数据量不大,一个实习生花费一个小时时间足够搞定。适逢公司在推广大模型提效,要求每个部门看看自己的工作流中有没有可以应用大模型的地方,于是我就想到了能不能在这个地方应用到大模型,向领导提出后,也得到了领导的大力支持。然后我正好看到了dify的ai低代码平台,由于我这个只是要做一个轻量化的ai工具,也不会分到太多的研发资源,所以就想到了用dify做知识库和前端搭建。说干就干,前期我协助业务方收集每个产品对应的关键词,搭建知识库,并且还支持业务不断更新关键词,中期和产品一起试图减少幻觉的影响,兼容现有Excel文件格式及业务流程,自动化识别网页数据中的关键信息并完成分类打标签操作。项目的困难点是由于公司产品类别繁多,复杂,所以需要知识库搭建极为细致,有时候还需要迭代,并且需要大模型读取网页或者附件信息,提取关键参数完成标签生成。所以我们设置了&nbsp;&nbsp;这个工具需支持简单的规则配置功能,便于后续自主更新规则最后也得到了较好的结果,大模型进行数据清洗可以收获90%的准确率,只需要人工复核即可,也是节省了清洗人员的大量时间上述过程中大多数步骤都可以用dify完成,前期使用python验证可行性,dify目前也十分完善,非常适用于工作流提效
AI求职实录
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务