前天题目的答案(这两天出去面试了,没上,哈哈)
2006-12-20 15:06
246 查看
1、 P(s):S=S-1;
if(s>0),则该进程继续执行;否则该进程置为等待状态,排入等待队列。
V(s):S=S+1;
if(S>0), 则该进程继续执行;否则释放队列中第一个等待信号量的进程。
2、以下是排序的部分,
TYPE compare(TYPE *head)
{TYPE *pb,*pf,*r;
int temp,i=0;
char str1[20],str2[20];
pb=head;
pf=pb->next;
while(((n+m)*(n+m-1)/2)>i)
{
r=pf;
while(pf!=NULL)
{
if(pb->num>pf->num)
{ r=pf;
temp=r->num;
r->num=pb->num;
pb->num=temp;
strcpy(str1,pb->name);
strcpy(str2,pf->name);
strcpy(pb->name,str2);
strcpy(pf->name,str1);
strcpy(str1,pb->tel);
strcpy(str2,pf->tel);
strcpy(pb->tel,str2);
strcpy(pf->tel,str1);
}
pb=pf;
pf=pf->next;
}
pb=head;
pf=pb->next;
i++;
}
return head;
}
这两种是转载,感觉这种写法不好,写一个不用换值,而换指针。
if(s>0),则该进程继续执行;否则该进程置为等待状态,排入等待队列。
V(s):S=S+1;
if(S>0), 则该进程继续执行;否则释放队列中第一个等待信号量的进程。
2、以下是排序的部分,
TYPE compare(TYPE *head)
{TYPE *pb,*pf,*r;
int temp,i=0;
char str1[20],str2[20];
pb=head;
pf=pb->next;
while(((n+m)*(n+m-1)/2)>i)
{
r=pf;
while(pf!=NULL)
{
if(pb->num>pf->num)
{ r=pf;
temp=r->num;
r->num=pb->num;
pb->num=temp;
strcpy(str1,pb->name);
strcpy(str2,pf->name);
strcpy(pb->name,str2);
strcpy(pf->name,str1);
strcpy(str1,pb->tel);
strcpy(str2,pf->tel);
strcpy(pb->tel,str2);
strcpy(pf->tel,str1);
}
pb=pf;
pf=pf->next;
}
pb=head;
pf=pb->next;
i++;
}
return head;
}
这两种是转载,感觉这种写法不好,写一个不用换值,而换指针。
相关文章推荐
- C#,.Net经典面试题目及答案
- 33条C#、.Net经典面试题目及答案
- 33条C#、.Net经典面试题目及答案
- C#,.Net经典面试题目及答案
- 33条C#和.NET经典面试题目及答案
- Android面试题目及其答案
- 前端面试题目及答案(欢迎拍砖)
- Android面试题目及其答案
- c#经典面试题目及答案
- 33条C#、.Net经典面试题目及答案
- Hadoop面试45个题目及答案
- 33条C#、.Net经典面试题目及答案
- 10道五百强面试经典题目及正确答案分析
- Android面试题目及其答案
- 嵌入式面试中可能问到的题目和答案整理(硬件篇)
- C#,.Net经典面试题目及答案
- Hadoop面试45个题目及答案
- 老赵面试题“我在面试.NET/C#程序员时会提出的问题”题目及参考答案
- 面试中常见的50个面试题目及答案