Entran los maestros~~~Mi pequeña niña no tiene talento, por favor ayuden a los expertos en programación~~~~Solo los retrasaré por un momento.
#include
#include
#define Tamaño máximo 5
//// ////////////////////////// funciones del anillo joseph ////////////////////// /// /////////////////////////////////////
datos de estructura typedef //definir una estructura Body "data"
{
int num; //Se usa para almacenar el número de serie de la persona
int val; almacenar la contraseña
}typedata;
typedef struct node//Definir una estructura (nodo), que contiene un campo de datos y un campo de puntero
{
struct data da; // Anidamiento de estructuras
struct node *next;
}linknode
linknode *head; p>
void huan()
{
head=(linknode*)malloc(sizeof(linknode));// Solicitar un espacio (head node head)
int n,i,b,m,j;
linknode *p,*q,*temp;//Defina dos punteros que puedan apuntar a nodos
printf ("Ingrese el número total de personas:");
scanf("%d",&n
p=head;
for (j=1; j<=n;j++)//Este ciclo almacena principalmente los datos de cada persona (incluido el número de serie y la contraseña) en una lista circular enlazada
{
q= (linknode *)malloc(sizeof(linknode));
p->next=q;
q->da.num=j;
printf (" Ingrese la contraseña de %d: ",j);
scanf("%d",&m);
q->da.val=m; p>
p=p->siguiente;
}
p->siguiente=cabeza->siguiente;
p=p->siguiente ;
p>printf("Ingrese cualquier número m:");
scanf("%d",&m);
if(m< =0)
printf("Error de entrada");
printf("El orden de eliminación de la cola es: ");
while(p->siguiente! =p)
{
for(i=1;i { q=p; p=p->siguiente; } b=p->da.num; m=p->da .val; printf("num:%-2dval:%-2d",p->da.num,p->da.val); q->siguiente =p-> siguiente; temp=p; p =p->siguiente; gratis(temp); } printf("num:%d\tval:%d\n",q ->da.num,q->da.val); // Genera el último nodo free(q); //Libera el último nodo free(head); // Libera el nodo principal printf("Joseph Ring ha terminado, bienvenido a visitarnos la próxima vez ~·~\n"); } / //////////////////////////////////////////// Creación del árbol de Huffman// ////////////////////////////////////////////////// //// ///////////////// typedef estructura { datos char; p> int peso; int parent; int lchild; int rchild; }HTNode;// Nodo del árbol de Huffman Definición de puntos HTNode ht[2*Maxsize-1]; void createHF(HTNode ht[],int n) { int i,k,lnodo,rnodo; int min1,min2; for(i=0;i<2*n-1;i++) //all Al campo padre lchild rchild del nodo se le asigna un valor de -1 ht[i].parent=ht[i].lchild=ht[i].rchild=-1; para (i=n;i<2*n-1;i++) { min1=min2=32767; lnode=rnode=-1; for(k=0;k<=i-1;k++)//A medida que i cambia, los nodos que no son hoja también ingresan al rango de búsqueda if(ht[k] .parent==-1)//Buscar en nodos que aún no han construido un árbol binario if(ht[k].weight { min2=min1; rnodo=lnodo; min1=ht[k].peso; } else if(ht[k ].peso { min2=ht[k ].rnode=k; } ht[lnode].parent=i; ht[rnode].parent=i; ht[i].weight=ht[lnode].peso+ht[rnode] ].peso; ht[i].lchild=lnode; ht[i].rchild=rnode; } } /*Función de salida del árbol de Huffman La salida de esta función se basa en la estructura específica del constructor y se genera entre paréntesis */ void putHF(HTNode ht[],int n) { p> int flag=0,i=2*n-2; printf("árbol de Huffman:\n "); printf("%2d",ht[i].peso); for(;i>=0;i--) if(ht[i].lchild!=-1) { printf("(%2d,%2d",ht[ht[i].lchild]. peso,ht[ht[i].rchild].peso); flag++; } más romper; para (i=bandera;i>0;i--) printf(")"); } void main() { int n; printf(" -*-*-*-*-*-*-*-*--Ingrese al módulo de creación del árbol de Huffman- - *-*-*-*-*-*-*-*-*-*\n\n"); printf("Ingrese el número de nodos:\n");< / p> scanf("%d",&n); for(int i=0;i { printf("ingrese el nodo %d peso:\n",i+1); scanf("%d",&ht[i].peso); } crearHF(ht,n); putHF(ht,n); printf("\n"); } ¡Es muy difícil registrar una cuenta!