Red de conocimiento informático - Consumibles informáticos - 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.

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->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;

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!