
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了三种经典的最短路径算法:Dijkstra算法(单源最短路径,不适用于负权值)、Bellman-Ford算法(单源最短路径,可处理负权值但不支持负权回路)和Floyd算法(双源最短路径)。重点解析了Dijkstra算法的贪心原理,通过集合划分和迭代选取最近顶点的方式实现路径优化,并给出了邻接矩阵实现代码。同时简要说明了Bellman-Ford算法的特点——能处理负权边但无法解决带负权回路的

本文主要介绍了数据链路层特别是以太网协议的工作原理。数据链路层负责局域网内设备间的数据传输,核心功能包括成帧和物理寻址(通过MAC地址)。以太网帧包含固定长度的报头(14字节)和报尾(4字节),并通过"类型"字段识别上层协议。MTU限制数据大小(1500字节),影响上层分片策略。交换机通过MAC地址表实现单播、广播和未知单播转发。文章还简要介绍了MAC地址的格式和作用,以及CR

本文深入解析了TCP协议的三次握手和四次挥手过程。三次握手通过同步序列号、验证全双工通信可靠性来避免资源浪费,防止SYN Flood攻击。四次挥手则由于TCP全双工特性,需要双方独立关闭各自的数据通道。同时探讨了TIME_WAIT状态的作用,以及Socket API与TCP连接的关系,指出连接建立由操作系统完成,accept仅用于获取连接句柄。通过图解和详细分析,阐明了TCP通信的核心机制及其设计

基于链地址法的哈希表实现,重点分析了unordered_set和unordered_map的底层结构设计。主要内容包括: 哈希表结构分析:通过模板参数区分键值类型、存储类型、哈希函数和键值提取方法,使用vector<Node*>实现链地址法。 迭代器设计:哈希表迭代器为单向迭代器,通过维护指向哈希表的指针实现跨桶遍历,支持operator++操作。 元素操作:详细说明了insert方法

本文讲解了SGI STL中stack和queue的实现原理及模拟实现。stack是先进后出(FILO)的单口容器,queue是先进先出(FIFO)的双口容器,它们都是基于底层容器(如deque)的容器适配器(adapter)。通过复用底层容器的接口并调整其特性,实现了各自的数据结构特性。文章给出了stack和queue的完整模拟代码,展示了如何通过封装底层容器来实现容器适配器。最后指出这类具有&q

本文介绍了C++智能指针的原理与实现,重点讨论了RAII资源管理思想及其在智能指针中的应用。主要内容包括: RAII技术原理:通过对象生命周期管理资源,构造函数获取资源,析构函数释放资源,避免内存泄漏。 C++智能指针发展历程:从C++98的auto_ptr到C++11引入的unique_ptr、shared_ptr和weak_ptr。 三种主要智能指针的实现与特点。文章通过示例代码详细说明了各类








