- 博客(5)
- 资源 (5)
- 收藏
- 关注
原创 Linux进程互斥——临界资源访问
经典的进程同步问题——临界资源访问模拟临界资源访问的示例程序示例程序代码运行结果改造程序,使错误易于观察代码如下运行结果利用信号量机制实现进程互斥功能示例代码运行结果模拟临界资源访问的示例程序本示例的临界资源是一个建立在共享存储区的栈,由服务进程建立并初始化。初始状态下共享栈满,里面顺序放置一系列正整数(自栈顶向下:1,2,3…),代表空闲块号。客户进程利用共享栈进行数据块的分配和释放,以得到、归还一个块号代表,并不进行任何后续操作。程序中getblock过程从共享栈中弹出一个块号(分配),relblo
2021-10-30 17:52:40
2665
3
原创 Linux进程互斥——生产者-消费者
经典的进程同步问题——生产者-消费者模拟生产者-消费者的示例程序示例程序代码运行结果改造该程序,取消所有的同步机制,记录执行情况并进行分析代码如下运行结果模拟生产者-消费者的示例程序本示例主要体现进程间的直接制约关系,由于使用共享存储区,也存在间接制约关系。进程分为服务进程和客户进程,服务进程只有一个,作为消费者,在每次客户进程改变共享存储区内容时显示其数值。各客户进程作为生产者,如果共享存储区内容已经显示(被消费),可以接收用户从键盘输入的整数,放在共享存储区。编译后执行,第一个进程实例将作为服务进
2021-10-30 17:27:25
1699
原创 数据结构实验--图的遍历及Dijkstra算法
文章目录实验内容实验步骤代码示例实验内容(1)采用邻接表建立图;(2)采用深度优先/广度优先搜索方式遍历图;(3)编程实现Dijkstra最短路径算法。参考界面:实验步骤邻接表创建有向图,先输入顶点值,创建表头结点并初始化表头结点指针域为空;接下来输入边的信息构造邻接表,输入一条边依附的两个顶点及其权值,用LocateVex()方法获取顶点位置,生成一个新结点p并将输入信息赋值给p。深度优先遍历,类似于树的先序遍历。从某个顶点v出发,访问v并置相应标志位true;然后新结点p指向刚访问结点
2021-07-11 16:27:32
523
原创 数据结构实验--哈夫曼编码
文章目录一、实验内容二、验收/测试用例三、代码示例一、实验内容 给定报文中26个字母a-z及空格的出现频率{64, 13, 22, 32, 103, 21, 15, 47, 57, 1, 5, 32, 20, 57, 63, 15, 1, 48, 51, 80, 23, 8, 18, 1, 16, 1, 168},构建哈夫曼树并为这27个字符编制哈夫曼编码,并输出。模拟发送端,从键盘输入字符串,以%为结束标记,在屏幕上输出输入串的编码;模拟接收端,从键盘上输入0-1哈夫曼编码串,翻译出对应的原文。参考
2021-07-10 18:01:08
1182
3
原创 数据结构实验--栈和队列操作
数据结构实验–顺序栈的操作文章目录数据结构实验--顺序栈的操作一、实验要求二、实验核心算法二、实验代码示例一、实验要求 编程实现栈的以下基本操作:建栈,取栈顶元素,入栈,出栈,显示顺序栈元素二、实验核心算法(1)定义顺序栈的存储结构,用base表示栈底指针,top表示栈顶指针,stacksize表示栈的容量typedef struct{ SElemType *base; //栈底指针 SElemType *top; //栈顶指针 int s
2021-04-17 22:07:32
3918
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人