Red de conocimiento informático - Aprendizaje de código fuente - Cola de estructura de datos (lenguaje C)

Cola de estructura de datos (lenguaje C)

Con respecto a la cola circular secuencial, el método de diseño convencional es utilizar el puntero de cola de cola y el puntero de cabecera de cola para señalar el subíndice de la posición actual de cola de cola, y el puntero de cabecera de cola para señalar. muestra el subíndice de la posición actual del encabezado de la cola.

Requisitos:

(1) Diseñar un tipo de datos abstracto que utilice el puntero y el contador del encabezado de la cola para crear una cola circular secuencial, que incluya: inicialización, ingreso a la cola, eliminación de la cola y toma del elemento del encabezado de la cola para determinar. si la cola no está vacía ;

#include?"stdio.h"

#include?"malloc.h"

#include?"stdlib. .h"

#include?"conio.h"

#define?

typedef?struct

{

int?data[ MAX];

int?frontal,trasero;

int?num;

}SeQue;

SeQue?*Init_SeQue()

{

SeQue?*s;

s=new?SeQue;

s-> delantero=s->trasero= MAX-1;

s->num=0;

retorno?s;

}

int?Empty_SeQue(SeQue? *s)

{

if(s->num==0)

retorno?;

else

return?0;

}

int?In_SeQue(SeQue?*s,int?x)

{

if(s->num==MAX)

¿regresar?

else

{? s->trasero=(s ->trasero+1)%MAX;

s->datos[s->trasero]=x;

s->num++;

regresar? 1;

}?

}?

int?Out_SeQue(SeQue?*s,int?*x)

{

if(Empty_SeQue(s)

¿regresar?;

else

{

s->frente= (s->frente+1)%MAX;

*x=s->datos[s->frente];

s->núm --;

¿regresar?;

}

}

void?Print_SeQue(SeQue?* s)

{

int?i,n;

i=(s->frente+1)%MAX;

n=s->num;

while(n>0)

{?printf("%d?",s->datos[i]); +1)%MAX;

n--;

}

}

void?main()

{

SeQue?*s;

int?k,flag,x;

s=Init_SeQue()

do{

printf("\\\\");

printf("\\\t\\\t\\\t\\t Cola secuencial circular\") ;

printf("\\\t\\t\\t\t************************\") ;

printf("Entra en el equipo**\");

printf("Entra en el equipo**\");

printf("Entra

fuera del equipo**\");

printf("¿Juez? ¿Equipo? ");

scanf("%d",&x);

flag=In_SeQue(s,x);

if(flag==0)

printf("¡La cola está llena y no se puede ingresar! Presione cualquier tecla para regresar. Presione Cualquier clave devuelve...");

getch();

system("cls");

break;

case?:

flag=Out_SeQue(s,&x);

if(flag==0)

printf("(¡Error al borrar la cola! Presione cualquier tecla para regresar..."Presione cualquier tecla para regresar...");

getch();

system("cls");

romper;

caso?:

flag=Empty_SeQue(s);

if(flag==1)

printf ("¡La cola está vacía! ! Presione cualquier tecla para regresar..."Presione cualquier tecla para regresar...");

getch();

system("cls ");

getch();

system("cls");

p>

romper;

caso?:

printf("/Los elementos de esta cola son:");

Print_SeQue(s);

printf("/Presione cualquier tecla para regresar.. .");

getch();

system("cls");

romper;

}

}mientras(k!=0);

}