Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Enchente
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Harbor Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Vytor Calixto
Enchente
Commits
7cd4afbb
Commit
7cd4afbb
authored
8 years ago
by
Vytor Calixto
Browse files
Options
Downloads
Patches
Plain Diff
Cria arquivo para tipo No
parent
b339a9ee
No related branches found
No related tags found
No related merge requests found
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
Makefile
+1
-1
1 addition, 1 deletion
Makefile
filha.c
+17
-33
17 additions, 33 deletions
filha.c
filha.h
+5
-13
5 additions, 13 deletions
filha.h
main.c
+12
-12
12 additions, 12 deletions
main.c
no.c
+39
-0
39 additions, 0 deletions
no.c
no.h
+27
-0
27 additions, 0 deletions
no.h
with
101 additions
and
59 deletions
Makefile
+
1
−
1
View file @
7cd4afbb
...
...
@@ -10,7 +10,7 @@ test: main
chmod
+x runTests.sh
;
\
./runTests.sh
main
:
main.c tabuleiro.o filha.o
main
:
main.c tabuleiro.o filha.o
no.o
$(
CC
)
$(
CFLAGS
)
-o
$@
$^
clean
:
...
...
This diff is collapsed.
Click to expand it.
filha.c
+
17
−
33
View file @
7cd4afbb
#include
"filha.h"
#include
<stdbool.h>
#include
<stdlib.h>
struct
No
{
void
*
conteudo
;
No
anterior
,
proximo
;
};
#include
"filha.h"
#include
"no.h"
struct
Filha
{
unsigned
int
tamanho
;
...
...
@@ -24,58 +20,46 @@ unsigned int tamanhoFilha(Filha f) {
return
f
->
tamanho
;
}
No
primeiroNo
(
Filha
f
)
{
No
primeiroNo
Filha
(
Filha
f
)
{
if
(
f
->
tamanho
==
0
)
{
return
NULL
;
}
No
n
=
f
->
primeiro
;
f
->
primeiro
=
f
->
primeiro
->
proximo
;
n
->
anterior
=
NULL
;
n
->
proximo
=
NULL
;
f
->
primeiro
=
getSucessorNo
(
f
->
primeiro
)
;
setSucessorNo
(
n
,
NULL
)
;
setAntecessorNo
(
n
,
NULL
)
;
return
n
;
}
No
ultimoNo
(
Filha
f
)
{
No
ultimoNo
Filha
(
Filha
f
)
{
if
(
f
->
tamanho
==
0
)
{
return
NULL
;
}
No
n
=
f
->
ultimo
;
f
->
ultimo
=
f
->
ultimo
->
anterior
;
n
->
anterior
=
NULL
;
n
->
proximo
=
NULL
;
f
->
ultimo
=
getAntecessorNo
(
f
->
ultimo
)
;
setSucessorNo
(
n
,
NULL
)
;
setAntecessorNo
(
n
,
NULL
)
;
return
n
;
}
No
sucessorNo
(
No
n
)
{
return
n
->
proximo
;
}
No
antecessorNo
(
No
n
)
{
return
n
->
anterior
;
}
void
*
conteudo
(
No
n
)
{
return
n
->
conteudo
;
}
No
insere
(
void
*
conteudo
,
Filha
f
)
{
No
novo
=
malloc
(
sizeof
(
struct
No
));
No
insereFilha
(
void
*
conteudo
,
Filha
f
)
{
No
novo
=
criaNo
();
if
(
!
novo
)
return
NULL
;
novo
->
c
onteudo
=
conteudo
;
novo
->
anterior
=
f
->
ultimo
;
setC
onteudo
(
novo
,
conteudo
)
;
setAntecessorNo
(
novo
,
f
->
ultimo
)
;
++
f
->
tamanho
;
return
f
->
ultimo
=
novo
;
}
bool
destroi
(
Filha
f
,
bool
destroi
(
void
*
))
{
bool
destroi
Filha
(
Filha
f
,
bool
destroi
(
void
*
))
{
No
n
;
bool
ok
=
true
;
while
(
(
n
=
primeiroNo
(
f
))
)
{
while
(
(
n
=
primeiroNo
Filha
(
f
))
)
{
if
(
destroi
)
ok
&=
destroi
(
c
onteudo
(
n
));
ok
&=
destroi
(
getC
onteudo
(
n
));
free
(
n
);
}
free
(
f
);
...
...
This diff is collapsed.
Click to expand it.
filha.h
+
5
−
13
View file @
7cd4afbb
#ifndef _FILHA_
#define _FILHA_
#include
<stdbool.h>
#include
"no.h"
// Filha é uma estrutura que pode ser vista como Fila ou Pilha
typedef
struct
Filha
*
Filha
;
...
...
@@ -16,24 +17,15 @@ Filha constroiFilha();
unsigned
int
tamanhoFilha
(
Filha
f
);
// Remove o primeiro nó da filha f ou retorna NULL se f for vazia
No
primeiroNo
(
Filha
f
);
No
primeiroNo
Filha
(
Filha
f
);
// Remove o último nó da filha f ou retorna NULL se f for vazia
No
ultimoNo
(
Filha
f
);
// Devolve o nó sucessor de n ou NULL se n é o último nó da filha
No
sucessorNo
(
No
n
);
// Devolve o nó antecessor de n ou NULL se n é o primeiro nó da filha
No
antecessorNo
(
No
n
);
// Devolve o conteúdo de n
void
*
conteudo
(
No
n
);
No
ultimoNoFilha
(
Filha
f
);
// Insere um novo nó no fim da Filha f
//
// Devolve o nó recém criado ou NULL em caso de falha
No
insere
(
void
*
conteudo
,
Filha
f
);
No
insere
Filha
(
void
*
conteudo
,
Filha
f
);
// Desaloca a filha f e todos os seus nós
//
...
...
@@ -42,7 +34,7 @@ No insere(void *conteudo, Filha f);
// para cada nó n da filha
//
// devolve true em caso de sucesso ou false em caso de falha
bool
destroi
(
Filha
f
,
bool
destroi
(
void
*
));
bool
destroi
Filha
(
Filha
f
,
bool
destroi
(
void
*
));
// Impreme todos os nós da filha f
//
...
...
This diff is collapsed.
Click to expand it.
main.c
+
12
−
12
View file @
7cd4afbb
...
...
@@ -3,7 +3,7 @@
#include
<stdio.h>
#include
<time.h>
#include
"tabuleiro.h"
#include
"jogador.h"
//
#include "jogador.h"
int
main
()
{
Tblr
t
=
criaTblr
();
...
...
@@ -14,16 +14,16 @@ int main() {
}
imprimeTblr
(
t
);
// declara o grafo ponderado e seu primeiro nodo
grafo
=
criaGrafo
(
t
);
if
(
grafo
==
NULL
))
{
puts
(
"Erro na criacao do grafo"
);
return
-
1
;
}
// faz o jogador jogar o jogo a partir do tabuleiro dado
// o retorno do jogador sera um vetor contendo os numeros referentes a menor jogada encontrada por ele
int
*
jogadas
;
jogadas
=
Joga
(
grafo
,
t
);
//
//
declara o grafo ponderado e seu primeiro nodo
//
grafo = criaGrafo(t);
//
if(grafo == NULL)) {
//
puts("Erro na criacao do grafo");
//
return -1;
//
}
//
//
faz o jogador jogar o jogo a partir do tabuleiro dado
//
//
o retorno do jogador sera um vetor contendo os numeros referentes a menor jogada encontrada por ele
//
int *jogadas;
//
jogadas = Joga(grafo, t);
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
no.c
0 → 100644
+
39
−
0
View file @
7cd4afbb
#include
<stdlib.h>
#include
"no.h"
struct
No
{
void
*
conteudo
;
No
anterior
,
proximo
;
};
No
criaNo
()
{
No
n
=
malloc
(
sizeof
(
struct
No
));
n
->
anterior
=
NULL
;
n
->
proximo
=
NULL
;
return
n
;
}
No
getSucessorNo
(
No
n
)
{
return
n
->
proximo
;
}
void
setSucessorNo
(
No
n
,
No
p
)
{
n
->
proximo
=
p
;
}
No
getAntecessorNo
(
No
n
)
{
return
n
->
anterior
;
}
void
setAntecessorNo
(
No
n
,
No
p
)
{
n
->
anterior
=
p
;
}
void
*
getConteudo
(
No
n
)
{
return
n
->
conteudo
;
}
void
setConteudo
(
No
n
,
void
*
conteudo
)
{
n
->
conteudo
=
conteudo
;
}
This diff is collapsed.
Click to expand it.
no.h
0 → 100644
+
27
−
0
View file @
7cd4afbb
#ifndef _NO_
#define _NO_
// Nó cujo conteúdo é um void *
typedef
struct
No
*
No
;
// Cria um nó vazio e devolve
No
criaNo
();
// Devolve o nó sucessor de n ou NULL se n é o último nó da filha
No
getSucessorNo
(
No
n
);
// Define o nó sucessor de n
void
setSucessorNo
(
No
n
,
No
p
);
// Devolve o nó antecessor de n ou NULL se n é o primeiro nó da filha
No
getAntecessorNo
(
No
n
);
// Define o nó antecessor de n
void
setAntecessorNo
(
No
n
,
No
p
);
// Devolve o conteúdo de n
void
*
getConteudo
(
No
n
);
void
setConteudo
(
No
n
,
void
*
conteudo
);
#endif
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment