int main(int argc, char ** argv){ int tabelaAsc[256], numPalavras; char *entrada=NULL, *saida=NULL; TipoLista palavras, resultado; FLVazia(&resultado); FLVazia(&palavras); PegaArgumentos(argc, argv, &entrada, &saida); TabelaASC(tabelaAsc); numPalavras=LeArquivo(entrada, tabelaAsc, &palavras); Apontador ponteiros[numPalavras]; OrdenaLista(ponteiros, palavras, tabelaAsc, &resultado); Imprime(saida, resultado); return 0; }
int Cores(TipoGrafo Grafo){ int i, cor = 0, coloriu = 0; int Cores[Grafo.NumVertices]; TipoLista Coloridos; TipoItem x; for(i=0;i<Grafo.NumVertices;i++){//PARA CADA VÉRTICE DO GRAFO Cores[i] = INCOLOR; //INICIALIZA INCOLOR } FLVazia(&Coloridos);//FAZ LISTA DE VERTICES A SEREM COLORIDOS while(coloriu!=Grafo.NumVertices){//ENQUANTO NAO COLORIU TUDO for(i=0;i<Grafo.NumVertices;i++){//PARA CADA VÉRTICE DO GRAFO if(Cores[i]==INCOLOR){//SE NÃO ESTIVER COLORIDO if(!AdjacenteColorido(Grafo.Adj[i], Coloridos)){//SE NÃO TIVER ADJACENTE COLORIDO COM MESMA COR Cores[i]=cor;//COLORE O VÉRTICE x.Vertice=i; Insere(&x, &Coloridos);//INSERE NA LISTA DE COLORIDOS coloriu++; } } } cor++; EsvaziaLista(&Coloridos); } return cor; }
//Função para criar um Grafo com todos os vértices, porem sem nenhuma aresta void FGVazio(TipoGrafo *Grafo, int realocar){ short i; for (i = 0; i <= Grafo->NumVertices - 1; i++){ FLVazia(&Grafo->Adj[i],realocar); } }
void Inicializa(TipoTabela T) { int i; for (i = 0; i < M; i++) FLVazia(&T[i]); }
void FGVazio(TipoGrafo *Grafo) { short i; for (i = 0; i <= Grafo->NumVertices - 1; i++) FLVazia(&Grafo->Adj[i]); }
void FGVazio(TipoGrafo *Grafo){ long i; for (i = 0; i < Grafo->NumVertices; i++) { FLVazia(&Grafo->Adj[i]); } }