Ejemplo n.º 1
0
int
main(int argc, char **argv)
{
	if (!strcmp(argv[1], "put")) {
		pushin("bbsnnrp.txt", "test", argv[2]);
		pushin("rfc977.txt", "test", argv[2]);
		pushin("tv.txt", "test", argv[2]);
		pushin("DEADJOE", "test", argv[2]);
	} else {
		dump(argv[2]);
	}
}
Ejemplo n.º 2
0
int main()
{
	int i,j,enter=0;
	scanf("%d",&n);
int a[n+1][n+1];
int stack[n+1],known[n+1],parent[n+1],v1[n+1],v2[n+1];
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			scanf("%d",&a[i][j]);
		}
		stack[i]=-1;
		known[i]=-1;
		parent[i]=-1;
		v1[i]=-1;
		v2[i]=-1;
	}

	int u;
	for(j=1;j<=n;j++)
	{
		if(k==0)
		{
			for(i=1;i<=n;i++)
			{
				enter=0;
				if(known[i]==-1)
				{
					enter=1;
					parent[i]=0;
					pushin(a,v1,v2,i,parent);
					push(stack,known,i,n);
					break;
				}
			}
		}
		if(enter!=1)
		{
			break;
		}

		int flag=0;
		if(a[stack[k]][j]==1 && known[j]==-1)
		{
			parent[j]=stack[k];
			pushin(a,v1,v2,j,parent);
			//			printf("parent of %d is %d\n",j,stack[k]);
			flag=1;
			push(stack,known,j,n);
			j=1;
		}
		if(j==n && flag==0)
		{
			pop();
			j=1;
		}
	}
	i=1;
	j=1;
	//printf("out\n");
	if(part==1)
	{
		printf("YES\n");
		sort(v1,e);
		sort(v2,f);
		for(i=1;i<=e;i++)
{
printf("%d ",v1[i]);
}
printf("\n");

		for(i=1;i<=f;i++)
{
printf("%d ",v2[i]);
}
printf("\n");
/*while(v1[i]!=-1)
		{printf("%d ",v1[i]);
			i++;
		};
		printf("\n");
		while(v2[j]!=-1)
		{printf("%d ",v2[j]);

			j++;}
			printf("\n");*/
	}
	else 
	{
		printf("NO\n");
	}
return 0;
}
Ejemplo n.º 3
0
int main()
{
	printf("The productions used are:\n");
	printf("E-->E*E/E+E/E^E/E*E/E-E\n E-->E/E \n E-->a/b/c/d/e.../z");
	printf("\n Enter an expression that terminals with $:");
	fflush(stdin);
	i=-1;
	while(str[i]!='$')
	{
		i++;
		scanf("%c",&str[i]);
	}

	for(j=0;j<i;j++)
	{
		if((str[j]=='(')||(str[j]==')')||(str[j+1]=='(')||(str[j+1]==')'))
		{}
		else if (((isalpha(str[j])==0)&&(isalpha(str[j+1])==0))||((isalpha(str[j])!=0)&&(isalpha(str[j+1])!=0)))
		{
			printf("ERROR");
			exit(0);
		}
	}
	if((((isalpha(str[0]))!=0)||(str[0]=='('))&&(((isalpha(str[i-1]))!=0)||(str[i-1]==')')))
	{
		pushin('$');
		printf("\n\n\n\t+\t-\t*\t/\t^\ta\t(\t)\t$\n\n");
		for(i=0;i<9;i++)
		{
			printf("%c",c[i]);
			for(j=0;j<9;j++)
				printf("\t%c",q[i][j]);
			printf("\n");
		}

		while(1)
		{
			if(str[ptr]=='$' && stk[tos]=='$')
			{
				printf("\n The given expression is succesfully accepted!\n");
				break;
			}
			else if(rel(stk[tos],str[ptr],'<')||rel(stk[tos],str[ptr],'=='))
			{
				display(str[ptr]);
				pushin(str[ptr]);
				ptr++;
			}
			else if(rel(stk[tos],str[ptr],'>'))
			{
				do
				{
					rm++;
					pstk[rm]=popout();
					display1(pstk[rm]);
				}

				while(!rel(stk[tos],pstk[rm],'<'));
			}

			else
			{
				printf("\n NOT ACCEPTED!!!!!!!\n");
				exit(1);
			}
		}
	}
	else
	{
		printf("ERROR");
	}
	return 0;
}
Ejemplo n.º 4
0
int main()
{
	int n,i,j,enter=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			scanf("%d",&a[i][j]);
		}
		known[i]=-1;
		parent[i]=-1;
		v1[i]=-1;
		v2[i]=-1;
	}

	int u;
	for(j=1;j<=n;j++)
	{
		if(k==0)
		{
			for(i=1;i<=n;i++)
			{
				enter=0;
				if(known[i]==-1)
				{
					enter=1;
					parent[i]=0;
					pushin(i);
					push(i,n);
					break;
				}
			}
		}
		if(enter!=1)
		{
			break;
		}

		int flag=0;
		if(a[stack[k]][j]==1 && known[j]==-1)
		{
			parent[j]=stack[k];
			pushin(j);
			//			printf("parent of %d is %d\n",j,stack[k]);
			flag=1;
			push(j,n);
			j=1;
		}
		if(j==n && flag==0)
		{
			pop();
			j=1;
		}
	}
	i=1;
	j=1;
	//printf("out\n");
	if(part==1)
	{
		printf("YES\n");
		sort(v1,e);
		sort(v2,f);
		while(v1[i]!=-1)
		{printf("%d ",v1[i]);
			i++;
		}
		printf("\n");
		while(v2[j]!=-1)
		{printf("%d ",v2[j]);

			j++;}
			printf("\n");
	}
	else 
	{
		printf("NO\n");
	}
}