コード例 #1
0
ファイル: Kruskal.c プロジェクト: BuDashka/UniWork_course1
int main()
{
    int size = 0;
    int i, j;
    scanf("%d", &N);
    struct Way *g = malloc(N * (N - 1) / 2 * sizeof(struct Way));
    struct Ram *vertex = malloc(N * sizeof(struct Ram));
    struct Vertex **vert = malloc(N * sizeof(struct Vertex*));
    
    for (i = 0; i < N; i++)
    {
        vert[i] = malloc(N * sizeof(struct Vertex));
        vertex[i].depth = 0;
        vertex[i].parent = i;
        scanf("%d %d", &vert[i]->x, &vert[i]->y);
    }
    struct Way *w = malloc(sizeof(struct Way));
    for (i = 0; i < N; i++)
    {
        for (j = i + 1; j < N; j++)
        {
            w->x = i;
            w->y = j;
            double hh = Length(i, j, vert);
            w->len = hh;
            g[size++] = *w;
        }
        
    }
    qsort(g, size, sizeof(struct Way), compareLen_of_way);
    Spaning_Tree(g, size, vertex);
    printf("%.2lf", res);
    allfree (vert, g, vertex, w);
    return 0;
}
コード例 #2
0
int main()
{
	init("COM3");
	int i=0;	
	int flag=0;
	while(1)
	{	
		flag=0;
		if(no_of_objects==0) 
		{
			flag=1;
			printf("\nAll objects sorted by Gripper\n\n");
		}
		if(flag==1 && allfree())
		{
			printf("\n\nDelivered all objects\n");
			printf("Project successfully done :) \n");
			while(1) {} 
			break;
		}
		if(gripper[0].is_free && flag==0)
		{
			collect_obj(0);
			gripper[0].is_free = false;
		}
		data=new char[20];
		getString();
		printf("I read %s \n",data);
		if(data[0] == 'd') // for delivery bot
		{
			deliver(data);
		}
		else if(data[0] == 'g')
		{
			if(data[3] == '\0')	collect_obj(0);
			else if(data[3] == '*') //object dropped successfully by gripper
			{
				updateafterdrop(0);
			}
			else
			{
				char* temp = new char;
				temp = data+3;
				printf("Received rfid: %s\n",temp);
				int i = getdestn_rfid(temp);
				gripper[0].dest_bot = i;
				gripper[0].destn = delivery[i].p;
				collect_obj(0);
			}
		}
		else printf("Error signal\n");
		
	}
}