- 博客(6)
- 收藏
- 关注
原创 数据结构--单链表(C语言)
首先,我们定义了一个节点结构体 Node,它包含图书的基本信息和指向下一个节点的指针。// 定义图书信息结构体}Node;通过这段代码,我们可以看到如何使用C语言实现一个简单的单链表。单链表的基本操作包括节点的插入、删除、更新、查询和展示。希望这篇博客能帮助你更好地理解单链表的实现原理。---希望这篇博客文案对你有帮助!
2024-12-27 14:59:52
561
原创 数据结构--顺序表的实现(C语言)
首先,我们定义一个顺序表结构体SeqList,它包含一个数组data用于存储元素,以及一个整数length用于记录顺序表的长度。// 定义顺序表结构体int length;}SeqList;
2024-12-27 14:46:33
356
原创 C++实现简单文件目录管理系统
今天和大家分享一个用C++实现的简单文件目录管理系统。这个项目虽小,但涵盖了链表操作、文件管理的基本概念,非常适合用来学习和练习C++编程。这是一个基于内存的单级文件目录管理系统,支持文件的创建、删除和目录显示等基本功能。系统使用链表结构存储文件信息,每个文件节点包含文件名和大小信息。这个项目虽然简单,但包含了很多基础且重要的编程概念。希望这篇文章能对正在学习C++的同学有所帮助。如果你有任何问题或建议,欢迎在评论区留言交流!---代码已开源,完整代码可以在文章开头找到。
2024-12-25 23:21:21
651
原创 死锁问题的解决——银行家算法
互斥条件:资源不能被多个进程同时使用请求和保持条件:进程在等待其他资源时,不释放已占有的资源不可剥夺条件:资源只能由进程自愿释放循环等待条件:存在一组进程循环等待其他进程的资源在本次实验中,我们实现了银行家算法,深入理解了死锁避免的原理和实现方法。通过设计核心数据结构(如可用资源向量、最大需求矩阵和分配矩阵),我们能够有效管理资源分配。实验过程中,我们实现了用户输入处理、资源请求验证、资源分配和安全性检查等功能。通过 getResourceRequest 函数,我们确保用户输入的有效性。
2024-12-18 14:22:01
1884
原创 哲学家干饭问题(基于C++)
哲学家就餐问题的场景设定在一张圆桌旁,五位哲学家围坐在桌子周围。每位哲学家面前有一根筷子,哲学家们的主要活动是思考和用餐。为了能够用餐,哲学家必须同时拿起左右两根筷子。这个简单的场景却引发了复杂的同步问题,成为了多线程编程中的经典案例。信号量结构体用于实现同一时间只能有一个哲学家拿起筷子,防止对同一个筷子的竞争,筷子结构体用于保证一个筷子一次只能被一个哲学家使用。// 信号量结构体// 互斥信号量,用于保护信号量计数// 条件变量,用于线程同步int sem;// 信号量计数。
2024-12-10 23:22:52
1383
原创 读者-写者问题(基于C++实现)
以下是我们实现的代码,使用了 C++11 的线程库、互斥锁和条件变量来管理读者和写者的访问。引入头文件我们定义了一个 Semaphore 结构体,用于管理互斥锁和条件变量// 信号量结构体,用于线程同步// 互斥信号量// 条件变量int sem;// 信号量计数// 全局互斥锁,用于保护输出,防止多个读者竞争输出在这篇博客中,我们实现了一个简单的多线程读者-写者模型,使用 C++ 的线程库来确保线程安全。通过使用互斥锁和条件变量,我们能够有效地管理对共享资源的访问。
2024-12-03 23:56:07
1801
空空如也
C语言指针有关的提问
2022-12-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人