Red de conocimiento informático - Aprendizaje de código fuente - Pregunta de diseño del algoritmo de estructura de datos: eliminar todos los elementos redundantes con el mismo valor en la lista de una única lista circular enlazada

Pregunta de diseño del algoritmo de estructura de datos: eliminar todos los elementos redundantes con el mismo valor en la lista de una única lista circular enlazada

//Pregunta de diseño de algoritmo: eliminar todos los elementos redundantes con el mismo valor en la lista de una única lista circular enlazada

#include

#include< malloc.h>

#include

#define OK 1

#define Estado int

typedef estructura LNode

{

int data;

LNode *siguiente;

}LNoed,*LinkList;

Estado CreateList_L(LinkList &L)

{

int n,i;

LinkList p,q;

printf( "ingrese la longitud de la Lista\n");

scanf("%d",&n);

printf("ingrese los datos\n");

L=(LinkList)malloc(sizeof(LNode));

q=L;

scanf("%d",&L->data);

//L->siguiente=NULL;

for(i=2;i<=n;i++)

{

p =(LinkList) malloc(sizeof(LNode));

scanf("%d",&p->data);

q->next=p;

/ /p->siguiente=NULL;

q=p;

}

p->siguiente=L;

return OK ;

}

Estado OutList_L(LinkList L)

{

printf("la lista es\n" );

p>

Lista de enlaces p;

p=L;

hacer

{

printf( "%4d",p ->datos);

p=p->siguiente;

}mientras(p!=L);

printf( "\n");

devolver OK;

}

Estado ListDelete_L(LinkList &L)

{

ListaEnlaces q,r ,p,p1;

q=L;

hacer

{ p=q;

p1 =p->siguiente;

mientras(p1!=L)

{

si(q->datos==p1->datos)

{ r=p1;

p1=p->siguiente=r->siguiente;

libre(r);

}

más

{

p1=p1->siguiente;

p=p->siguiente;

}

}

q=q->siguiente;

}mientras(q!=L);

devolver OK;

}

void main()

{

LinkList La;

CreateList_L(La);

OutList_L(La);

ListDelete_L(La);

OutList_L(La);

}

//Amigos, este es Me tomó una hora escribirlo. Creo que en realidad es mejor usar una lista doblemente enlazada. Recuerde, debe pensarlo usted mismo. ¡El programa anterior es solo de referencia! Debe ejecutarse en VC, porque & es algo en C++. Pero también puedes utilizar punteros.