Estructura organizacional de una firma de contabilidad
#Includes
#Includes
15
Definir M 15
Definir N etiqueta de estructura //definir El tipo de coordenadas de punto del laberinto.
{
Interpretación x;
;
}
Elemento estructural // Elemento de pila "Amor" . .
{
Entero x, y, // fila x, columna y
Entero d // La dirección de desarrollo futuro de D
};
Definición de tipo LStack//La estructura de la pila de cadena
{
ELEM;
Bajo la estructura de LStack ;
p>} * PLStack
/* * * * * * * * * * *Función de pila* * * * * * * * * * * * * * *
Explicación de la pila de inicialización (pl stack & s)//Construir pila vacía
{
S = NULL
Return 1;
}
Explicar la propiedad de la pila (pl stack S)//Determinar si la pila está vacía.
{
Si (S == NULL) devuelve 1.
Otros
0;
}
& gtExplicación Push (elemento e de la pila pl)//Enviar nuevos elementos de datos.
{
pl pila P
Malloc (tamaño (LStack)) donde P = (pl pila BR/>; ;
p->;Siguiente = S;
s = P;
Devolver 1;
}
La pila de elementos & s// en la parte superior de la pila PL.
{
pl pila p;
(atributo de pila)
{
& gte = S- >ELEM;
p = S;
S = S->Abajo;
Gratis(p);
Regresar 1;
}
Otros
Devuelve 0
}
/* * * * * * * * * * * * * *Función de ruta del laberinto buscada* * * * * * * * * * * * * * *
Ruta del laberinto no válida (inicio de etiqueta de estructura, final de etiqueta de estructura, explicación del laberinto [ M] [N], diradd [4] [2])
{
INT I, J, D, A, B;
ELEM, e ;
S2 pl pila s 1;
pila inicial(s 1);
pila inicial(S2);
[inicio . x start . y]=//El laberinto marcado en el punto de entrada.
elem.x = inicio.x
elem .y = inicio .
elem d =-1; p>
elem. p>
push(S1, ELEM);
(!stack vacío(s 1)) // No hay ruta de pila separada.
{
(S1, ELEM) popularidad;
= elem.x
J = elem.y
d = elem . d+1; //dirección hacia abajo
y (d)
{
a = I+diradd[D] [0 ];
b? = J+diradd[D][1];
(= = end.x & amp& amp& amp& ampmaze[A][B]= = 0)//Salir
{
elem .
elem.x =
elem . y = B
Elem.d = 886, // La salida de dirección -1 determina si se exporta.
push(s1,elem);
printf("\n0=este=sur=oeste=laberinto del norte 886\n\nRuta:(coordenadas de fila y coordenadas de columna, Dirección )\n ");<BR/(S1), //Vaya a casa. Secuencia y secuencia del camino de salida del laberinto
{
Hot(S1, electron);
Push(S2, e);
}
Y (S2) {
Popular (S2, comercio electrónico);
printf("->; (%d, % d, % d )" before, EY, edit);
}
Return; //Dos bucles, original y breakout, pero si se encuentra un error, salir finalizará el programa. que sigue siendo una buena opción. Devolver O (∩ _ ∩) O. ...
}
(Maze[A][B]= = 0)//Encuentra la no salida del punto anterior.
{
Laberinto[A][B]= 2//Mark ha pasado este punto.
elem . x = I;
elem y = J
elem.d = D
Empujar(S1, ELEM ); //Apilar en la posición actual
I = A; //Un punto convierte el punto actual
j = B;
d =-1 ;
}
D + +
}
}
Printf's ("No hay forma de salir de esto Se encontró el laberinto.\n ");
}
/a & gt;
/* * * * * * * * * * * * *Construye un laberinto* * * * * * * * * * * * * *
initmaze(INT maze [M] [N]) no es válido
{
INT I, J ;
INT M, N; //Filas y columnas del laberinto
Printf("Ingrese el número del laberinto M = ");
('scanf es %d ', & m;
Printf's("Ingrese el número de columnas en el laberinto N = ");
scanf's (' %d ', & n);
printf("\nPor favor ingresa las filas y columnas del laberinto:\nEl número 1, separado por espacios, representa la Gran Muralla\n", m, n);
Sí (I = 1; & lt= M++)
(J = 1; & lt= N; J++)
Función de escaneo ( " %d ", y laberinto [I][J]);
Printf("El laberinto que construiste es O(∩_∩)o...\ n ");
(I = 0 & lt= M +1,i++)//Agrega una pared.
{
Laberinto[I][0]= 1;
Laberinto[I][N+1]= 1;
}
(J = 0; & lt= N+1; J + +)
{
Laberinto[0][J]= 1; ....../>Laberinto[M+1][J]= 1;
}
(I = 0;I<= M +1, i++)/ /Laberinto de salida
{ BR/& gt; (J = 0; & lt= N+1; J + +)
Printf ("%d ",laberinto [I] [J]);
printf("\n");
}
}
Principal () no válido
{
Explicación STO[M][N];
Inicio y fin de la etiqueta de estructura //Inicia y completa la coordinación de entrada y salida.
Adición de comentarios [4] [2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0 } } // Suma de incremento de línea La dirección del incremento de la columna, desde el sur, norte, este y oeste
init maze(STO //Crea un laberinto
printf("Ingrese la abscisa y la ordenada de la entrada); Coordenadas [separadas por comas\n");
("%d,%d",&&start.x y start.y) scanf
printf() entrada salida Abscisa, coordenadas [ separados por comas] \ n ");
(" %d mes % d día", & &end.x y end.y) scanf
MazePath( Punto de inicio, punto final, STO Express, agregar); //Encontrar la ruta
Sistema ("pausa");
}