摘要: // 邻接矩阵的深度和广度优先遍历 #include <stdio.h> #define OK 1 // 执行成功 #define ERROR 0 // 执行失败 #define TRUE 1 // 返回值为真 #define FALSE 0 // 返回值为假 typedef int Status; // 执行状态(OK、ERROR) typedef int Boolean; // 布尔值(TRU 阅读全文
posted @ 2019-10-22 17:45 bestAndBest 阅读(985) 评论(0) 推荐(0)
摘要: sem odd=0,even=0,empty=n,mutex1; p1() { x=produce(); p(empty); p(mutex); put(); v(mutex); if(x%2==0) v(even); else v(odd); } p2() { p(odd); p(mutex); getodd(); v(mutex); v(empty); countodd(); } p3() { 阅读全文
posted @ 2019-10-20 19:26 bestAndBest 阅读(130) 评论(0) 推荐(0)
摘要: sem mutex=1;//取号机互斥信号量 sem empty=10;//空余座位信号量 sem full=0;//已占座位信号量 sem service=0//等待叫号数量 顾客() { p(empty); p(mutex); 取号 v(mutex); v(full); p(service); 获取服务 } 柜员() { whi... 阅读全文
posted @ 2019-10-20 19:21 bestAndBest 阅读(184) 评论(0) 推荐(0)
摘要: sem empty=500; sem mutex=1; 参观者 { p(empty); p(mutex); 进门; v(mutex); 参观 p(mutex); 出门 v(mutex); v(empty); } 阅读全文
posted @ 2019-10-20 19:16 bestAndBest 阅读(138) 评论(0) 推荐(0)
摘要: sem mutex1=1; sem mutex2=1; sem empty=1000; sem full=0; producer() { while(1) { 生产一个产品 p(empty); p(mutex2); 放入缓冲区 v(mutex2); v(full); } } consumer() { while(1) { p(mutex1); for(int i=0;i<=10;++i)//连续取 阅读全文
posted @ 2019-10-20 19:12 bestAndBest 阅读(87) 评论(0) 推荐(0)
摘要: sem full_a=x; sem empty_a=m-x; sem full_b=y; sem empty_b=n-y; sem mutex_a=1; sem mutex_b=1; A{ while(True) { p(full_a); p(mutex_a); 从a邮箱取邮件 v(mutex_a); v(empty_a); 回答一个问题并提出新问题 p(empty_b); p(mutex_b); 阅读全文
posted @ 2019-10-20 19:03 bestAndBest 阅读(184) 评论(0) 推荐(0)
摘要: typedef struct { float a; float b; }cnum; cnum x,y,z; cnum add(cnum p,cnum q) { cnum s; s.a=p.a+q.a; s.b=p.b+q.b; return s; } sem mutex1=1;//t1和t2变量y互斥访问 sem mutex2=1;//t2与t3变... 阅读全文
posted @ 2019-10-20 18:52 bestAndBest 阅读(229) 评论(0) 推荐(0)
摘要: sem bowl; sem chopsticks[n]; for(int i=0;i<n;i++) chopsticks[i].value=1; bowl.value=min(n-1,m)//bowl.value<=n-1,确保不死锁 while(True) { p(bowl); p(chopsticks[i]); p(chopsticks[(i+1]MOD n); 就餐; v(chopstick 阅读全文
posted @ 2019-10-20 16:42 bestAndBest 阅读(180) 评论(0) 推荐(0)
摘要: 思想:采用两个指针交替进行,找到中间节点;将单链表的后半段节点原地逆置;将单链表前后两段中依次各取一个节点,按要求重排; 代码: 阅读全文
posted @ 2019-10-20 16:31 bestAndBest 阅读(265) 评论(0) 推荐(0)
摘要: 思想:定义两个指针变量p,q,初始时均指向头节点的下一个节点,p指针沿着链表移动,当p指针移动到第k节点时,q与p同步移动,当p移动到最后一个节点时q为所求节点 代码: 阅读全文
posted @ 2019-10-20 16:15 bestAndBest 阅读(299) 评论(0) 推荐(0)