示例#1
0
void* thread2(void* arg)
{
    Q_add("data 5");
    Q_add("data 6");
    Q_add("data 7");
    Q_add("data 8");
    Q_add("data 9");
    Q_clear();

    return NULL;
}
示例#2
0
void* thread1(void* arg)
{
    Q_add("data 0");
    Q_add("data 1");
    Q_add("data 2");
    Q_add("data 3");
    Q_add("data 4");
    Q_clear();

    return NULL;
}
示例#3
0
文件: topsort.c 项目: zyxstar/md_note
void LG_topPrint(LGraph lg)
{
	unsigned *indegree;
	unsigned i,count=0;
	DLL_Node* node_ptr;
	Queue q;
	if(lg.count==0)
		return ;
	indegree=(unsigned *)malloc(sizeof(unsigned)*lg.count);
	for(i=0;i<lg.count;i++)
		indegree[i]=lg.in_ptr[i];

	Q_init(&q);
	for(i=0;i<lg.count;i++)
		if(indegree[i]==0)
			Q_push(&q,i);
	while(!Q_isEmpty(q))
	{
		Q_getFront(q,&i);
		Q_pop(&q);
		printf("%c ",lg.d_ptr[i]);
		++count;
		for(node_ptr=lg.l_ptr[i].head;node_ptr;node_ptr=node_ptr->next)
		{
			i=node_ptr->data;
			if(--indegree[i]==0)
				Q_push(&q,i);
		}
	}
	if(count<lg.count)
		printf("ͼÖÐÓлØ·£¬ÅÅÐòʧ°Ü\n");
	else
		printf("\n");
	Q_clear(&q);
	free(indegree);
	
}