Estoy buscando urgentemente un programa fuente en C (puedes descargarlo, siempre que esté escrito en C, también puedes proporcionarme una URL de descarga gratuita)
#include
#include
#include
estructura send_alarm_msg{
índice de caracteres sin firmar;
estructura send_alarm_msg *pre, *siguiente;
}__attribute((packed,aligned(1))); p> p>
estructura estática send_alarm_msg init_send_alarm = {11, &init_send_alarm, &init_send_alarm};
estructura estática send_alarm_msg *send_alarm = &init_send_alarm;
#define INIT_LIST_HEAD(ptr) do{ \
(enviar_alarma)->siguiente = (enviar_alarma)\
(enviar_alarma)->prev = (enviar_alarma);} mientras (0)
# definir ALARMADD (a) do{(a)->pre = enviar_alarma; \
enviar_alarma->siguiente->pre = (a);\
(a)->siguiente = enviar_alarma ->siguiente;\
enviar_alarma->siguiente = (a);}mientras(0)
#define ALARMDEL(a) hacer{(a)->siguiente- >pre = (a)->pre; \
(a)->pre->siguiente = (a)->siguiente \
gratis((a)); a= NULL;}mientras(0);
#define ALARMCLR(a) hacer{(a)->siguiente = (a)->pre = (a);}mientras( 0)
void add_list(int index)
{
struct send_alarm_msg *t = NULL;
t = (struct send_alarm_msg * )malloc (sizeof(struct send_alarm_msg));
memset(t, 0, sizeof(struct send_alarm_msg));
t->index = index;
ALARMADD (t);
printf("add_alarm_node %d\n",index);
}
static int del_alarm_node(int alarm_index) p>
{
estructura send_alarm_msg *t = send_alarm->siguiente;
while (t != send_alarm)
{
if (t ->index == alarm_index)
{
ALARMDEL(t);
devuelve 0;
}
t = t->siguiente;
}
return -1;
}
int main()
{
int i=0;
for(i=1;i<8;i++)
{
add_list(i);
}
estructura send_alarm_msg *t = send_alarm->siguiente;
i = 0;
mientras (t != enviar_alarma)
{
del_alarm_node(i);
printf("del_alarm_node %d ",t->index);
printf("t->siguiente índice %d ",t->siguiente->índice);
printf("t->pre índice %d\n",t->pre ->índice);
t = t->siguiente;
i++;
}
printf("i= %d end\n",i);
}
Ya hay adiciones y eliminaciones en él. La consulta se puede realizar imitando la adición. La clasificación se puede realizar escribiendo un clasificación de burbujas según la consulta